【问题标题】:Getting a POST variable获取 POST 变量
【发布时间】:2010-01-29 14:25:42
【问题描述】:

我在 ASP.NET 中使用 C#。

如何检查是否已将参数作为 POST 变量接收?

如果参数是通过 POST 或 GET 发送的,我需要执行不同的操作。

【问题讨论】:

    标签: c# asp.net http-post


    【解决方案1】:

    将此用于 GET 值:

    Request.QueryString["key"]
    

    这用于 POST 值

    Request.Form["key"]
    

    此外,如果您不关心它是来自 GET 还是 POST,还是来自 HttpContext.Items 集合,这将起作用:

    Request["key"]
    

    需要注意的另一件事(如果需要)是您可以使用以下命令检查请求的类型:

    Request.RequestType
    

    这将是用于访问页面的动词(通常是 GET 或 POST)。 Request.IsPostBack 通常会检查这一点,但前提是 POST 请求包含由 ASP.NET 框架添加到页面的隐藏字段。

    【讨论】:

    • 我不会使用 Request["key"]...因为这是 Items 集合并获取存储在页面上下文中的所有对象的列表。这也将包括 cookie 值。
    【解决方案2】:

    使用

    Request.Form[]

    对于 POST 变量,

    Request.QueryString[]

    对于 GET。

    【讨论】:

      【解决方案3】:

      除了使用Request.FormRequest.QueryString 之外,根据您的具体情况,检查PageIsPostBack 属性也可能很有用。

      if (Page.IsPostBack)
      {
        // HTTP Post
      }
      else
      {
        // HTTP Get
      }
      

      【讨论】:

      • 不正确,如果表单是使用 GET 或 POST 发送的,则 IsPostBack 为 true。命名不反映功能
      猜你喜欢
      • 2013-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多