Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
@指定给json对象时缺少Html.Raw-换行符_Json_Asp.net Mvc_Razor_Html Encode - Fatal编程技术网

@指定给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);
}