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