我试图找到最干净的方法将一个对象(记录集列表)从MVC 4 Controller传递给View作为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对象的globalData包含JSON。
查看View,我正在调用Newtonsoft.Json.JsonConvert.SerializeObject,我宁愿在Controller中使用它。
当我将 JsonConvert.SerializeObject 移动到控制器时:
var mem = BLL.Presenters.Account.GetAll().ToList();
var json = Newtonsoft.Json.JsonConvert.SerializeObject(mem);
return View(json);
我收到错误:路径中的字符非法。
如何使用Newtonsoft.Json将一个json对象(已经是Serialize)从Controller传递给View?
答案 0 :(得分:4)
编译器将您的json(字符串)模型误解为视图名称并调用View
的错误重载。如果你将模型转换为对象,你应该好好去:
return View((object)json)
答案 1 :(得分:1)
return View(json);
实际上正在调用方法View(string viewName)
。
您需要将json放到ViewData / ViewBag或ViewModel。