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);实际上是调用方法View(string viewName)

您需要将 json 放入 ViewData/ViewBag 或 ViewModel。

于 2013-11-11T14:34:34.577 回答