@ Html.Raw - 换行符分配给JSON对象时丢失
我有以下代码:@ Html.Raw - 换行符分配给JSON对象时丢失
data: { comment: {
'id': @Model.Id,
'description': "@Html.Raw(Model.Description)"
},
},
但我得到以下错误控制台:
Uncaught SyntaxError: Invalid or unexpected token
的误差源在突出铬开发工具显示如下:
data: { comment: {
'id': 1,
'description': "<p>Test</p>
<p>Testing</p>
",
}
},
错误是在说明属性。我认为它没有\n
正在增加此属性的值,这是抛出错误。
我该如何解决?
回答:
这是否适合您?
@Html.Raw(HttpUtility.HtmlEncode(Model.Description).Replace("\n", "<br/>"))
回答:
它看起来就像你正在试图通过一个MVC视图生成JSON输出。你可能会成功,但你也会使它比需要的复杂得多,而且做错了的风险很大。你刚刚经历过这种风险!
您可能会遇到的下一个问题是,根据JSON标准,所有字段必须用双引号包围,而不是单引号。谁知道你接下来会遇到什么。
更好的是使用MVC的力量,并让它为您呈现JSON输出。你根本不需要MVC Views来获取JSON输出,只需要一些编写良好的Controller代码,而MVC会将它变成适合你的JSON。
这是你的控制器的操作方法将需要什么样子:
public ActionResult MyAction(....) {
var modelObj = .... // data retrieval code here
var resultObj = new
{
data = new
{
comment = new
{
id = modelObj.Id,
description = modelObj.Description
}
}
};
return Json(resultObj);
}
以上是 @ Html.Raw - 换行符分配给JSON对象时丢失 的全部内容, 来源链接: utcz.com/qa/257511.html