虽然我不认为自己是一名网络程序员,但我已经完成了大量的网络编程,所以我几乎不好意思问下面的代码有什么问题。我必须缺少一些关于 ASP.NET 的基本知识。
我有两个页面,source.aspx 和destination.aspx:
source.aspx - html:
<body>
<form id="form1" action="destination.aspx" method="post" runat="server">
<input id="Text1" type="text" />
<input id="Text2" type="text" />
<input id="Checkbox1" type="checkbox" />
<input id="Submit1" type="submit" value="submit" />
</form>
</body>
destination.aspx - 后面的代码:
protected void Page_Load(object sender, EventArgs e)
{
// Below variable gets assigned null.
string text1 = Request.Form["Text1"];
}
当我提交source.aspx 表单时,一旦它到达destination.aspx 表单,FORM 变量中就没有任何信息。我认为表单 'runat="server" ' 将确保我最终进入 ASP.NET 页面管道,实际上我可以单步执行此代码。除了 viewstate 之外没有 POSTed 表单变量,并且 PARAMs 集合也没有任何与控件数据对应的内容,甚至没有与修饰控件名称对应的内容。问题是,发生了什么让我的 POSTed 变量“消失”,至少到目标页面?
我不是在寻找如何使这项工作的替代方案(即使用 runat="server" 等制作控件服务器控件)。我可以解决问题。我要确定的是 ASP.NET 是什么使我的控件看起来无法被目标页面接收。谢谢 - 我认为我对 HTTP 理解得很好,但似乎有一点我没有看到的 ASP.NET 的花招。