我在我的视图中使用(asp mvc3/razor cshtml)
引用请求对象(eg, @Request.Params["Name"])
。你认为这是一种非常糟糕的做法吗?我是否应该将控制器Request.Params ["Name"]
中的值重写为ViewBag.Name
,然后在视图(@ViewBag.Name)
中使用它?asp.net mvc3 /剃刀视图最佳实践
1
A
回答
0
我应该重写控制器的值Request.Params [“Name”]到ViewBag.Name,然后在视图(@ ViewBag.Name)中使用它?
是的。如果“名称”不存在,您将避免运行时错误。
IDE不会警告您要使用以下代码抛出NullReferenceException
。
@Request.Params["Fake"].ToString()
当然,您还必须注意ViewBag.Fake
也为空。
1
最佳做法是使用模型类。模型类的实例在您的控制器中创建或更新。然后控制器显示一个强类型的视图。
所以我会避免直接访问视图中的请求以及使用视图包。
0
我喜欢使用viewbag存储与模型无关的事物,例如,如果我有一个包含位置的下拉列表。我喜欢仅存储模型上选定位置的id和viewbag中的位置,因为不需要创建联系人。我认为这是视图包的目的。
对我来说,模型在业务操作中使用,例如,如果我有使用NewCustomerModel
,我不想亵渎我的东西像IList<CustomerType>
和A SelectedCustomerTypeId
属性模型客户创造视图袋或属性。我只想第二个是用于创建客户的imma。
是的,这是优惠的。 – JustinStolle 2011-03-04 09:03:16