C# Can';无法从HTML表单获取请求表单

C# Can';无法从HTML表单获取请求表单,c#,html,asp.net,C#,Html,Asp.net,我有一个表格,我有几个输入,当我提交表格来处理信息时,当我试图阅读它们时,我不能 表格如下: <form id="form1" action="page.aspx" method="get"> <input type="text" name="idP" id="idP" value="123456789" /> ... </form> 但当我试图从代码中读取它们时: string[] keys = Request.Form.All

我有一个表格,我有几个输入,当我提交表格来处理信息时,当我试图阅读它们时,我不能

表格如下:

<form id="form1" action="page.aspx" method="get">
      <input type="text" name="idP" id="idP" value="123456789" />
...
        </form>
但当我试图从代码中读取它们时:

string[] keys = Request.Form.AllKeys;
            for (int i = 0; i < keys.Length; i++)
            {
                Response.Write(keys[i] + ": " + Request.Form[keys[i]] + "<br>");
            }
string[]keys=Request.Form.AllKeys;
for(int i=0;i”;
}
它不打印任何内容,所有键都显示为0值,我也尝试了“Post”方法,但什么也没有


我做错了什么

与POST和PUT不同,GET请求没有body1,因此表单值必须通过查询字符串发送。您可以在URI中看到这一点:
localhost/page?idP=123456789

因此,您需要使用以下内容:

var idP = Request.QueryString["idP"];
Request.Form
从请求正文中提取值。从:

当HTTP请求内容类型值为“application/x-www-Form-urlencoded”或“multipart/Form data”时,将填充Form属性

如果您查看您的请求头,您会发现内容类型a)完全缺失,或者b)两者都没有。所以,在这里使用它是不合适的


1:从技术上讲,GET请求可以有一个主体,但是根据HTTP规范,服务器应该忽略它。有关更多信息,请参阅。

您可以通过
请求获取
idP
的值。QueryString
var idP = Request.QueryString["idP"];