我有一个从母版页继承的Webform 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;
}