asp.net mvc3/razor视图最佳实践

asp.net mvc3/razor视图最佳实践,asp.net,asp.net-mvc-3,view,Asp.net,Asp.net Mvc 3,View,我正在视图中使用对请求对象的引用(例如@Request.Params[“Name]”)。你认为这是一种非常糟糕的做法吗?我是否应该将控制器Request.Params[“Name”]中的值重写为ViewBag.Name,然后在视图(@ViewBag.Name)中使用它 我是否应该将controller Request.Params[“Name”]中的值重写为ViewBag.Name,然后在视图中使用它(@ViewBag.Name) 是。如果“名称”不存在,您将避免运行时错误 IDE不会警告您将与

我正在视图中使用对请求对象的引用(例如@Request.Params[“Name]”)。你认为这是一种非常糟糕的做法吗?我是否应该将控制器
Request.Params[“Name”]
中的值重写为
ViewBag.Name
,然后在视图
(@ViewBag.Name)
中使用它

我是否应该将controller Request.Params[“Name”]中的值重写为ViewBag.Name,然后在视图中使用它(@ViewBag.Name)

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

IDE不会警告您将与以下代码一起引发
NullReferenceException

@Request.Params["Fake"].ToString()
当然,对于
ViewBag.false
也是空的,您必须小心

我是否应该将controller Request.Params[“Name”]中的值重写为ViewBag.Name,然后在视图中使用它(@ViewBag.Name)

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

IDE不会警告您将与以下代码一起引发
NullReferenceException

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

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

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


因此,我会避免直接从视图访问请求以及使用视图包。

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


因此,我避免直接从视图访问请求以及使用视图包。

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


对我来说,模型是业务运营中使用的一个包或属性,例如,如果我有一个使用
NewCustomerModel
的客户创建视图,我不想用
IList
SelectedCustomerTypeId
属性之类的东西污染我的模型。我只想要第二个,因为它是imma用来创建客户的工具。

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

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