我们有很多将 JSON 结果返回给视图的控制器。视图需要根据用户的合同类型和用户的家庭位置是动态的。
我正在考虑使用 MVC 3.0 ViewBag 对象传递合同类型和其他属性。查看然后访问此对象并切换 UI。
如果这是最好的方法,有人可以帮助我吗?这种方法的缺点是每个控制器都需要将 viewbag 传递给 UI,或者将所需的对象存储在 session 中并从 View 访问它是好的。
谢谢。
我们有很多将 JSON 结果返回给视图的控制器。视图需要根据用户的合同类型和用户的家庭位置是动态的。
我正在考虑使用 MVC 3.0 ViewBag 对象传递合同类型和其他属性。查看然后访问此对象并切换 UI。
如果这是最好的方法,有人可以帮助我吗?这种方法的缺点是每个控制器都需要将 viewbag 传递给 UI,或者将所需的对象存储在 session 中并从 View 访问它是好的。
谢谢。
ViewBag
并且ViewData
更多的是最糟糕的方法。ViewModel 应该包含 View 所需的一切。
如果您想了解更多有关原因和方式的信息,请查看 Darin Dimitrov 的精彩解释:ViewBag、ViewData 和 TempData
更新:在您写的评论中,您不能使用 ViewModel,因为您正在重新调整 JSON 结果。传递 JSON 也可以使用 ViewModel 完成:
public JsonResult SomeAction()
{
SomeViewModel model = ...;
return Json(model, JsonRequestBehavior.AllowGet);
}