1

オブジェクト (レコードセット リスト) を MVC 4 コントローラーからビューに Json オブジェクトとして渡す最もクリーンな方法を見つけようとしています。

コントローラ:

    var mem = BLL.Presenters.Account.GetAll().ToList();
    return View(mem);

意見:

<script type="text/javascript">
    // Load data from view 
    var globalData = @(Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(Model)))
</script>

JavaScript オブジェクトには、JSON を含む globalData があります。

ビューを見ると、コントローラーにある Newtonsoft.Json.JsonConvert.SerializeObject を呼び出しています。

JsonConvert.SerializeObjectをコントローラーに移動すると:

   var mem = BLL.Presenters.Account.GetAll().ToList();
   var json = Newtonsoft.Json.JsonConvert.SerializeObject(mem);
   return View(json);

エラーが表示されます: パスに不正な文字があります。

Newtonsoft.Json を使用して、コントローラーからビューに json オブジェクト (既にシリアル化されている) を渡すにはどうすればよいですか?

4

2 に答える 2

4

コンパイラは、json (文字列) モデルをビューの名前と誤って解釈し、間違ったオーバーロードを呼び出していViewます。モデルをオブジェクトにキャストすれば、準備完了です:

return View((object)json)
于 2013-11-11T14:24:45.410 に答える
1

return View(json);実際に method を呼び出してView(string viewName)います。

json を ViewData/ViewBag または ViewModel に配置する必要があります。

于 2013-11-11T14:34:34.577 に答える