C# ASP.NETMVC&;JsonResult&;jQuery返回编码的结果。。。为什么?

C# ASP.NETMVC&;JsonResult&;jQuery返回编码的结果。。。为什么?,c#,jquery,asp.net-mvc,json,C#,Jquery,Asp.net Mvc,Json,我有一个使用jQuery的ASP.NETMVC3项目。在某个时刻,对返回类型为JsonResult的控制器方法进行jQuery$get()调用。其中一个字段是HTML字段 出于某种原因,它不返回HTML,而是对其进行编码 我试过HtmlEncode、HtmlDecode、HtmlString等等什么都不管用 总是 "\u003cp\u003e" or "&amp;&lt;" 并且从不提供真正的HTML,例如 <p>some paragraph</p>

我有一个使用jQuery的ASP.NETMVC3项目。在某个时刻,对返回类型为
JsonResult
的控制器方法进行jQuery
$get()
调用。其中一个字段是HTML字段

出于某种原因,它不返回HTML,而是对其进行编码

我试过HtmlEncode、HtmlDecode、HtmlString等等什么都不管用

总是

"\u003cp\u003e" or "&amp;&lt;"
并且从不提供真正的HTML,例如

<p>some paragraph</p>
某个段落

因此jQuery总是写下所有的标记,而不是解析它们(例如段落,它不会显示为段落,而是使用HTML标记按原样编写)。不用说,在DB中,我得到的HTML本身没有编码

非常感谢您的帮助:)


谢谢

我对ASP.NET不熟悉,但是“&;”看起来您可能离正确解码它只有一步之遥。请参阅了解如何完成其余部分。

我不熟悉ASP.NET,但“&;”看起来您可能离正确解码它只有一步之遥。请参阅,了解如何完成剩下的部分。

不知道您做错了什么,因为您已经显示了0代码

但是下面的代码对我来说非常好,没有任何编码发生:

控制器:

public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View();
    }

    public ActionResult AjaxTest()
    {
        return Json(new { HtmlField = "<p>some paragraph</p>" }, JsonRequestBehavior.AllowGet);
    }
}
公共类HomeController:控制器
{
公共行动结果索引()
{
返回视图();
}
公共行动结果AjaxTest()
{
返回Json(新的{HtmlField=“某些段落

”},JsonRequestBehavior.AllowGet); } }
视图:


$.getJSON('/home/ajaxtest',函数(结果){
$('body').append(result.HtmlField);
});

不知道你做错了什么,因为你只显示了0个代码

但是下面的代码对我来说非常好,没有任何编码发生:

控制器:

public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View();
    }

    public ActionResult AjaxTest()
    {
        return Json(new { HtmlField = "<p>some paragraph</p>" }, JsonRequestBehavior.AllowGet);
    }
}
公共类HomeController:控制器
{
公共行动结果索引()
{
返回视图();
}
公共行动结果AjaxTest()
{
返回Json(新的{HtmlField=“某些段落

”},JsonRequestBehavior.AllowGet); } }
视图:


$.getJSON('/home/ajaxtest',函数(结果){
$('body').append(result.HtmlField);
});

达林·迪米特罗夫(Darin Dimitrov)是一个很好的例子。将AjaxTest()添加到主控制器并删除

<script type="text/javascript">
$.getJSON('/home/ajaxtest', function (result) {
    $('body').append(result.HtmlField);
});

$.getJSON('/home/ajaxtest',函数(结果){
$('body').append(result.HtmlField);
});


在about.cshtml视图中,运行应用程序并选择about链接。

很棒的示例Darin Dimitrov。将AjaxTest()添加到主控制器并删除

<script type="text/javascript">
$.getJSON('/home/ajaxtest', function (result) {
    $('body').append(result.HtmlField);
});

$.getJSON('/home/ajaxtest',函数(结果){
$('body').append(result.HtmlField);
});


在about.cshtml视图中,运行应用程序并选择about链接。

这正是我正在做的事情,我遇到了这个问题。不知道为什么。但是jQuery解码完成了任务。@roman,很明显,你没有完全按照我在这里展示的那样做,因为这项工作不需要任何编码技巧。这正是我正在做的事情——并且有这个问题。不知道为什么。但是jQuery解码完成了任务。@roman,很明显你没有完全按照我在这里展示的那样做,因为这不需要任何编码技巧。