我有以下代码:
data: {
comment: {
'id': @Model.Id,
'description': "@Html.Raw(Model.Description)"
},
},
但是我在控制台中收到以下错误:
Uncaught SyntaxError: Invalid or unexpected token
chrome dev工具中突出显示的错误源显示如下:
data: {
comment: {
'id': 1,
'description': "<p>Test</p>
<p>Testing</p>
",
}
},
错误在description属性上。我认为,因为这个属性的值会引发错误而没有添加\n
。
我该如何解决?
答案 0 :(得分:0)
这对你有用吗?
@Html.Raw(HttpUtility.HtmlEncode(Model.Description).Replace("\n", "<br/>"))
答案 1 :(得分:0)
看起来您正在尝试通过MVC视图生成JSON输出。你可能会成功,但你也会使它变得比需要的复杂得多,而且做错的风险很大。你刚刚经历过这种风险!
您可能遇到的下一个问题是,根据JSON标准,所有字段必须用双引号而不是单引号括起来。谁知道你接下来会遇到什么。
更好的是使用MVC 的强大功能,并让它为您呈现JSON输出。您根本不需要MVC视图来获取JSON输出,只需要一些编写良好的Controller代码,MVC会将它转换为适合您的JSON。
以下是您的Controller操作方法需要的样子:
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);
}