2017-12-02 367 views
0

我有以下代碼:@ 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正在增加此屬性的值,這是拋出錯誤。

我該如何解決?

回答

0

這是否適合您?

@Html.Raw(HttpUtility.HtmlEncode(Model.Description).Replace("\n", "<br/>")) 
0

它看起來就像你正在試圖通過一個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); 
}