Request( "key" ) 和 Request.Params( "key" ) 之间有什么区别吗?



我有一个函数,看起来像:

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.ItemParams.Item的MSDN页面,我没有看到任何差异。两个页面都说它们从cookie、Form、QueryString或ServerVariables集合中获取值。(尽管它们列出的顺序不同)

我看过这篇Stack Overflow的帖子,但似乎答案更多地集中在QueryString组件上,而不是Request.Params.ItemRequest.Item

为什么我要用其中一个而不是另一个呢?这两者有什么区别吗?

两者在内容上是严格等同的。下面是搜索的内容和顺序:

  1. 属性
  2. <
  3. 饼干/gh>
  4. ServerVariables

至于在ASP中使用哪一个。. NET MVC应用程序,最好使用:

controllerCtx.Controller.ValueProvider.GetValue("someKey");

也考虑了路由和自定义值提供商(比如JsonValueProvider)。当然,一切都取决于您的场景和具体需求。

相关内容

最新更新