asp.net mvc3 / razor查看最佳实践

时间:2011-03-04 06:33:33

标签: asp.net asp.net-mvc-3 view

我在我的视图中使用(asp mvc3/razor cshtml)对Request对象(eg, @Request.Params["Name"])的引用。你认为这是一个非常糟糕的做法吗?我应该将控制器Request.Params ["Name"]中的值重写为ViewBag.Name,然后在视图(@ViewBag.Name)中使用它吗?

3 个答案:

答案 0 :(得分:1)

最佳做法是使用模型类。在控制器中创建或更新模型类的实例。然后控制器显示强类型视图。

所以我要避免直接访问视图中的请求以及使用视图包。

答案 1 :(得分:0)

  

我应该将控制器Request.Params [“Name”]中的值重写为ViewBag.Name,然后在视图中使用它(@ ViewBag.Name)吗?

是。如果“名称”不存在,您将避免运行时错误。

IDE不会警告您将使用以下代码抛出NullReferenceException

@Request.Params["Fake"].ToString()

当然,你也必须小心ViewBag.Fake也是空的。

答案 2 :(得分:0)

我喜欢使用viewbag存储与模型无关的内容,例如,如果我有一个包含位置的下拉列表。我只想在模型中存储所选位置的id和viewbag中的位置,因为创建联系人不需要。我认为这是viewbag的目的。

对我来说,模型是业务运营中使用的一个或多个属性,例如,如果我有一个使用NewCustomerModel的客户创建视图,我不想用{{1}之类的东西污染我的模型和一个IList<CustomerType>属性。我只想要第二个,因为是用于创建客户的一个imma。