URL 重写停止按钮事件触发
URL Rewrite Stops Button Event from firing
我有一个从母版页继承的网络表单 default.aspx
。
母版页中有一个带有回发按钮的小表单。
<form id="form1" runat="server">
page content here
<asp:Button ID="btnSubmit" runat="server" Text="Call Me Back" />
</form>
隐藏代码:
Private Sub btnSubmit_Click(sender As Object, e As EventArgs) Handles btnSubmit.Click
'post the data and redirect
End Sub
这工作正常,直到我将重写添加到 web.config(将 /default.aspx
重写为 /
):
<rewrite>
<rules>
<rule name="Default Document" stopProcessing="true">
<match url="(.*?)/?default\.aspx$" />
<action type="Redirect" url="{R:1}/" />
</rule>
</rules>
</rewrite>
当我点击按钮时,我如何获得回发,但实际的按钮事件并未触发。我在事件处理程序上设置了一个断点,但没有命中。从同一母版页继承的其他页面仍然可以正常工作。
如果我删除重写默认页面将触发按钮处理程序。
如何使用重写确保按钮事件触发
我找到了解决此问题的方法,即设置表单标签的操作值。
我不知道为什么这会修复它,所以如果有人能阐明这个问题,那将会很有帮助。
<form id="form1" runat="server" action="/">
</form>
添加到页面或母版页:
protected void Page_Load(object sender, EventArgs e)
{
form1.Action = Request.RawUrl;
}
我有一个从母版页继承的网络表单 default.aspx
。
母版页中有一个带有回发按钮的小表单。
<form id="form1" runat="server">
page content here
<asp:Button ID="btnSubmit" runat="server" Text="Call Me Back" />
</form>
隐藏代码:
Private Sub btnSubmit_Click(sender As Object, e As EventArgs) Handles btnSubmit.Click
'post the data and redirect
End Sub
这工作正常,直到我将重写添加到 web.config(将 /default.aspx
重写为 /
):
<rewrite>
<rules>
<rule name="Default Document" stopProcessing="true">
<match url="(.*?)/?default\.aspx$" />
<action type="Redirect" url="{R:1}/" />
</rule>
</rules>
</rewrite>
当我点击按钮时,我如何获得回发,但实际的按钮事件并未触发。我在事件处理程序上设置了一个断点,但没有命中。从同一母版页继承的其他页面仍然可以正常工作。
如果我删除重写默认页面将触发按钮处理程序。
如何使用重写确保按钮事件触发
我找到了解决此问题的方法,即设置表单标签的操作值。
我不知道为什么这会修复它,所以如果有人能阐明这个问题,那将会很有帮助。
<form id="form1" runat="server" action="/">
</form>
添加到页面或母版页:
protected void Page_Load(object sender, EventArgs e)
{
form1.Action = Request.RawUrl;
}