我有一个与jQuery一起使用的ASP.NET MVC 3项目。在某些时候,对返回类型为$get()
的控制器方法进行jQuery JsonResult
调用。其中一个字段是HTML字段。
由于某种原因,它不会返回HTML,而是对其进行编码。
我已经尝试过HtmlEncode,HtmlDecode,HtmlString等...... - 没有用。
总是
"\u003cp\u003e" or "&<"
并且永远不会提供真正的HTML,例如
<p>some paragraph</p>
因此,jQuery将始终记下所有标记而不解析它们(例如段落不会显示为段落,但将与HTML标记一起编写)。不用说在DB中我没有编码的HTML本身。
帮助将不胜感激:)
感谢
答案 0 :(得分:3)
不知道你做错了什么,因为你已经准确地显示了0代码。
但是以下对我来说非常好,并且不会发生任何编码:
控制器:
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
public ActionResult AjaxTest()
{
return Json(new { HtmlField = "<p>some paragraph</p>" }, JsonRequestBehavior.AllowGet);
}
}
查看:
<script type="text/javascript">
$.getJSON('/home/ajaxtest', function (result) {
$('body').append(result.HtmlField);
});
</script>
答案 1 :(得分:1)
伟大的样本Darin Dimitrov。将AjaxTest()添加到主控制器并删除
<script type="text/javascript">
$.getJSON('/home/ajaxtest', function (result) {
$('body').append(result.HtmlField);
});
在about.cshtml视图中,运行应用程序并选择about链接。
答案 2 :(得分:0)
我不熟悉ASP.NET,但是“&amp; amp;&amp; lt;”看起来你可能距离正确解码它只有一步之遥。有关如何完成剩下的工作,请参阅How to decode HTML entities using jQuery?。