C# ASP.NETMVC&;JsonResult&;jQuery返回编码的结果。。。为什么?
我有一个使用jQuery的ASP.NETMVC3项目。在某个时刻,对返回类型为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 "&<" 并且从不提供真正的HTML,例如 <p>some paragraph</p>
JsonResult
的控制器方法进行jQuery$get()
调用。其中一个字段是HTML字段
出于某种原因,它不返回HTML,而是对其进行编码
我试过HtmlEncode、HtmlDecode、HtmlString等等什么都不管用
总是
"\u003cp\u003e" or "&<"
并且从不提供真正的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,很明显你没有完全按照我在这里展示的那样做,因为这不需要任何编码技巧。