我有一个函数,看起来像:
Public Sub DoSomething(controllerCtx As ControllerContext)
....
' Which to use? and Why?
Dim val = controllerCtx.HttpContext.Request.Params.Item("someKey")
Dim val = controllerCtx.HttpContext.Request.Item("someKey")
....
End Sub
(我知道Item
在两者中都是Default
属性,可以被删除,这与这个问题无关。)
查看Request.Item
和Params.Item
的MSDN页面,我没有看到任何差异。两个页面都说它们从cookie、Form、QueryString或ServerVariables集合中获取值。(尽管它们列出的顺序不同)
我看过这篇Stack Overflow的帖子,但似乎答案更多地集中在QueryString
组件上,而不是Request.Params.Item
和Request.Item
。
为什么我要用其中一个而不是另一个呢?这两者有什么区别吗?
两者在内容上是严格等同的。下面是搜索的内容和顺序:
- 属性
- <
- 饼干/gh>
- ServerVariables
至于在ASP中使用哪一个。. NET MVC应用程序,最好使用:
controllerCtx.Controller.ValueProvider.GetValue("someKey");
也考虑了路由和自定义值提供商(比如JsonValueProvider)。当然,一切都取决于您的场景和具体需求。