【问题标题】:Why do I get different results from the form post method "GET" vs. the "POST" method in the following?为什么我从下面的表单发布方法“GET”与“POST”方法得到不同的结果?
【发布时间】:2012-01-21 23:19:41
【问题描述】:

我有以下 HTML/ASP.NET 代码:

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Ny test</title>
    <link rel="stylesheet" type="text/css" href="StyleSheet.css" />
</head>
<body>

    <form action="Default.aspx" runat="server" method="post">

    Name: <input type="text" id="navn" runat="server"/>
    <input type="submit" id="submit" value="Submit!" runat="server" />
    <input type="reset" />
    <br />

    <%if (Request.Form["submit"] != null)
      {
          Response.Write("<br/>");
          Response.Write("Submit button pushed");
      }
      if (Request.Form["navn"] != null && Request.Form["navn"] != "")
      {
          Response.Write("<br/>");
          Response.Write("Name OK");
      } 
    %>
    </form>
</body>
</html>

当使用“POST”表单发布方法时,我得到以下输出:

提交按钮被按下 名字OK

当使用“GET”表单发布方法时NOTHING打印出来了?!

【问题讨论】:

    标签: asp.net html forms post get


    【解决方案1】:

    Request.Form 包含使用POST 发送的信息。当您使用GET 时,信息将在Request.QueryString 集合中。在您的情况下,这意味着 Request.Form["submit"] 是 null。

    如果您想同时支持两者,则可以使用 Request.Item 集合,其中包含来自以下各项的值:

    • Request.Cookies
    • Request.Form
    • Request.QueryString
    • Request.ServerVariables

    但是,如果您使用在其他集合之一中使用的参数名称,这样做可能会得到一些意想不到的结果。

    【讨论】:

      【解决方案2】:

      要使用您的代码同时处理POST 和GET,您只需删除.Form,即将Request.Form["navn"] 替换为Request["navn"]。

      【讨论】:

      • 谢谢!这是一个非常好的替代品!
      猜你喜欢
      • 2021-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-19
      • 2015-07-10
      • 2019-02-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多