在webForm模型中, 所有的请求默认都会被提交到本页。在实际的开发当中,我们会遇到如下情景:
在内容页中存在一个html form,点击提交按钮后我们希望将这个表单中的数据提交到另外一个页面,但不幸的是,请求始终被提交到内容页面。分析原因是因为在服务端form中包含了一个html form,当提交html form 时,请求并不能提交到html form 中action属性指定的页面,仍然被提交到内容页面。
解决方法:
if
(
!
IsPostBack)
... {
Master.Page.Form.Attributes.Add("onsubmit", "this.action='https://bill.ccbill.com/jpost/signup.cgi'");
}
... {
Master.Page.Form.Attributes.Add("onsubmit", "this.action='https://bill.ccbill.com/jpost/signup.cgi'");
}
我们看看这段代码产生的效果。
<
form name
=
"
aspnetForm
"
method
=
"
post
"
action
=
"
ChargePoint.aspx
"
id
=
"
aspnetForm
"
onsubmit
=
"
this.action='https://bill.ccbill.com/jpost/signup.cgi'
"
>
可以看到服务器表单中被添加了onsubmit事件响应代码,当提交时,请求会被提交到
https://bill.ccbill.com/jpost/signup.cgi 这个页面