@指定给json对象时缺少Html.Raw-换行符
我有以下代码:@指定给json对象时缺少Html.Raw-换行符,json,asp.net-mvc,razor,html-encode,Json,Asp.net Mvc,Razor,Html Encode,我有以下代码: data: { comment: { 'id': @Model.Id, 'description': "@Html.Raw(Model.Description)" }, }, 但我在控制台中遇到以下错误: Uncaught SyntaxError: Invalid or unexpected token chrome dev tools中突出显示
data: {
comment: {
'id': @Model.Id,
'description': "@Html.Raw(Model.Description)"
},
},
但我在控制台中遇到以下错误:
Uncaught SyntaxError: Invalid or unexpected token
chrome dev tools中突出显示的错误源显示如下:
data: {
comment: {
'id': 1,
'description': "<p>Test</p>
<p>Testing</p>
",
}
},
错误发生在description属性上。我认为这是因为没有\n在抛出错误的该属性的值上添加
我如何修复?这对您有用吗
@Html.Raw(HttpUtility.HtmlEncode(Model.Description).Replace("\n", "<br/>"))
看起来您正试图通过MVC视图生成JSON输出。你可能会成功,但你也使它变得比需要的复杂得多,并且有很大的出错风险。你刚刚经历了那种风险 您可能会遇到的下一个问题是,根据JSON标准,所有字段必须用双引号而不是单引号括起来。谁知道你接下来会遇到什么 更好的做法是使用MVC的强大功能,让它为您呈现JSON输出。JSON输出根本不需要MVC视图,只需要一些编写良好的控制器代码,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);
}