2017-12-02 8 views
0

私は、次のコードを持っている:@ Html.Raw - JSONオブジェクトに割り当てるときに不足している改行

data: { 
      comment: { 
       'id': @Model.Id, 
       'description': "@Html.Raw(Model.Description)" 
      }, 

     }, 

をしかし、私は、コンソールに次のエラーを取得する:

Uncaught SyntaxError: Invalid or unexpected token 

誤差源がで強調表示chrome開発ツールは次のように表示されます。

data: { 
      comment: { 
       'id': 1, 
       'description': "<p>Test</p> 

    <p>Testing</p> 
    ", 
      } 
     }, 

エラーはdescriptionプロパティにあります。私はそれがエラーを投げているこのプロパティの値に追加されていないので、\nと思う。

どうすれば修正できますか?

答えて

0

これは機能しますか?

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

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); 
} 
関連する問題