ASP.NET MVC& JsonResult& jQuery返回编码结果......为什么?

时间:2011-10-31 23:54:02

标签: c# jquery asp.net-mvc json

我有一个与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本身。

帮助将不胜感激:)

感谢

3 个答案:

答案 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?