c#asp.net为什么不';请求页面是否可以查看随后发布的值?

c#asp.net为什么不';请求页面是否可以查看随后发布的值?,c#,asp.net,C#,Asp.net,这是第二页后面的代码 namespace ns1 { public partial class second : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { int loop1; NameValueCollection coll; coll = Request.Form;

这是第二页后面的代码

namespace ns1
{
    public partial class second : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            int loop1;
            NameValueCollection coll;
            coll = Request.Form;
            String[] arr1 = coll.AllKeys;
            for (loop1 = 0; loop1 < arr1.Length; loop1++)
            {
                lblDebug.Text = lblDebug.Text + "Form: " + arr1[loop1] + "<br>";
            }
        }
    }
}
名称空间ns1
{
第二个公共部分类:System.Web.UI.Page
{
受保护的无效页面加载(对象发送方、事件参数e)
{
int-loop1;
NameValueCollection coll;
coll=Request.Form;
字符串[]arr1=coll.allkey;
for(loop1=0;loop1”;
}
}
}
}
这是表格的第1页:

<form id="form1" runat="server" method="post" action="second.aspx">
<div>
    type: <asp:TextBox ID="testType" runat="server"></asp:TextBox>
    data: <asp:TextBox ID="testData" runat="server"></asp:TextBox>
    <asp:Button ID="Button1" runat="server" Text="Button" />
    <asp:Label ID="lblDebug" runat="server" Text="text" />
</div>
</form>

类型:您将看到您期望看到的内容

但在第二页的代码隐藏中,arr1没有任何内容。arr1.lenght=0


为什么?

Asp.Net那样很有趣。它违反了标准的HTTP约定。要访问同一应用程序中另一页的表单字段,非常确定它们需要
name
属性(而且看起来不需要ID属性)。将
ID
更改为
name
,看看你的表现如何。ID允许您访问*页面的`代码隐藏文件'中的字段。但是对于
POST
数据,它是通过名称引用的。我将尝试上一页您知道什么是有趣的吗?这是回复:“表单:{“按钮1”:“按钮”,“测试数据”:“asdasdasd”,“测试类型”:“asdasd”},即席信息编辑。httpbin不需要name属性就存在。你在上面看到的代码是什么?直接从Microsoft网站上剪下,专门用于此目的。Asp.Net将
name
属性添加到服务器端控件。查看页面源代码。