【问题标题】:is passing Viewbag a best approach in asp.net-mvc 3在 asp.net-mvc 3 中传递 Viewbag 是一种最佳方法
【发布时间】:2012-09-10 08:27:59
【问题描述】:

我们有很多将 JSON 结果返回给视图的控制器。视图需要是动态的 基于用户的合同类型和用户的家庭位置。

我正在考虑使用 MVC 3.0 ViewBag 对象传递合同类型和其他属性。然后查看 访问此对象并切换 UI。

如果这是最好的方法,有人可以帮助我吗?这种方法的缺点是每个控制器 需要将 viewbag 传递给 UI,或者将所需的对象存储在 session 中并从 View 中访问它。

谢谢。

【问题讨论】:

标签: asp.net-mvc viewbag


【解决方案1】:

ViewBagViewData更像是一种最糟糕的方法。 ViewModel 应该包含 View 需要的一切。

如果您想了解更多关于原因和方法的信息,请查看 Darin Dimitrov 的精彩解释:ViewBag, ViewData and TempData

更新:在您编写的 cmets 中,您不能使用 ViewModel,因为您正在重新调整 JSON 结果。也可以使用 ViewModel 传递 JSON:

public JsonResult SomeAction()
{
    SomeViewModel model = ...;
    return Json(model, JsonRequestBehavior.AllowGet);
}

【讨论】:

  • 无法使用视图模型,因为我们将 json 结果传回视图。
  • @Myagdi 我已经更新了我的答案并为JsonResult添加了一个示例
猜你喜欢
  • 1970-01-01
  • 2012-09-07
  • 2017-12-16
  • 2016-11-08
  • 1970-01-01
  • 2011-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多