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
属性添加到服务器端控件。查看页面源代码。