Ev *_*rad 1 asp.net webforms http
虽然我不认为自己是一名网络程序员,但我已经做了大量的网络编程,所以我几乎不好意思问下面的代码有什么问题.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>
Run Code Online (Sandbox Code Playgroud)
destination.aspx - 代码背后:
protected void Page_Load(object sender, EventArgs e)
{
// Below variable gets assigned null.
string text1 = Request.Form["Text1"];
}
Run Code Online (Sandbox Code Playgroud)
当我提交source.aspx表单时,一旦它到达destination.aspx表单,FORM变量中就没有信息.我认为表单'runat ="server"'将确保我最终进入ASP.NET页面管道,实际上我可以单步执行此代码.除了viewstate之外没有POSTed表单变量,并且PARAMs集合也没有与控制数据相对应的任何内容,甚至没有与装饰控件名称相对应的变量.问题是,正在发生的事情是让我的POSTed变量"消失",至少到目标页面?
我不是在寻找替代方法如何使这项工作(即使用runat ="server"等控制服务器控件).我可以解决这个问题.我想要确定的是"ASP.NET的内容是什么让我的控件看起来不会被目标页面接收.谢谢 - 我认为我非常了解HTTP,但是我似乎没有看到ASP.NET的一点点礼貌.
小智 5
您可以从表单标记中删除runat ="server",因为您要退出ASP.NET为您提供的服务器控件.您基本上正确地认为这应该可以在不需要所有ASP.NET页面处理位的情况下工作.
这是您需要做的一个小改动 - 您需要在输入控件上使用'name'而不是'id',以便它们出现在Form集合中.这是一个微妙的事情,但我相信它不是ASP.NET独有的 - name属性指定了什么将值与POST变量集合相关联.
有关id与name的更多信息,请参阅HTML输入 - name与id
祝好运
| 归档时间: |
|
| 查看次数: |
3985 次 |
| 最近记录: |