将字符串转换为 HTML 以通过 WebMethod 注入段落
Posted
技术标签:
【中文标题】将字符串转换为 HTML 以通过 WebMethod 注入段落【英文标题】:Convert string to HTML to inject to paragraph via WebMethod 【发布时间】:2019-08-22 20:25:42 【问题描述】:我正在做一个维护页面,人们可以在其中存储对资源文件中的内容的描述,在这一点上,他们甚至不知道文本是纯文本还是带有<a></a>
之类的标签。所以在这一点上,我不得不假设它会是这样。
本项目是在VS2010的Webforms framework 3.5中制作的。
为简单起见,我将揭示相关部分:
<article>
<img src="Images/logo.jpg"/>
<h2>Site under Maintenance</h2>
<div>
<p id="Description"></p>
</div>
</article>
<script src="Includes/jquery-1.12.3.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function ()
$.ajax(
type: "GET",
url: "MaintenanceSite.aspx/GetMaintenanceDescription",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg)
$("#Description").text(msg.d);
);
);
</script>
后端:
[WebMethod]
[ScriptMethod(UseHttpGet = true)]
public static string GetMaintenanceDescription()
string mensaje = HttpUtility.htmlEncode(Resources.MaintenanceDescription);
return mensaje;
问题是,我在我的段落中收到了这个:
<To href="">Contact Us</a>
(没有空格,因为堆栈溢出正在正确解析 html)。
我错过了什么?
【问题讨论】:
html() 正在写“联系我们”而不是html a 标签 谢谢你,工作完美 很高兴你能成功。我在下面为您添加了答案 【参考方案1】:这里有两个问题。首先,您需要在 C# 逻辑中删除对 HtmlEncode()
的调用以返回纯 HTML 字符串。其次,您需要使用 jQuery 的 html()
方法而不是 text()
来显示它,因为后者将再次对 HTML 进行编码。
string mensaje = Resources.MaintenanceDescription;
$("#Description").html(msg.d);
【讨论】:
以上是关于将字符串转换为 HTML 以通过 WebMethod 注入段落的主要内容,如果未能解决你的问题,请参考以下文章