为什么我从下面的表单发布方法“GET”与“POST”方法得到不同的结果?

时间:2011-12-16 12:18:07

标签: asp.net html forms post get

我有以下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”表单post方法时,我得到以下输出:

推送提交按钮 名称确定

使用“GET”表单后,打印出方法 NOTHING ?!

2 个答案:

答案 0 :(得分:4)

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

如果您想同时支持两者,那么您可以使用包含以下值的Request.Item集合:

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

但是,如果您使用其他一个集合中使用的参数名称,这样做可能会产生一些意外结果。

答案 1 :(得分:1)

要使用您的代码处理POSTGET,您只需删除.Form,即将Request.Form["navn"]替换为Request["navn"]