我有一个从母版页继承的网络表单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>
当我点击按钮时,我得到一个回发,但实际的按钮事件不会触发。我在事件处理程序上设置了一个断点,它没有被命中。从同一母版页继承的其他页面仍可正常工作。
如果我退出重写,默认页面将触发按钮处理程序。
如何确保使用重写
触发按钮事件答案 0 :(得分:0)
我找到了一个修复方法,即设置表单标记的操作值。
我不知道为什么这会解决这个问题,所以如果有人能说明这一点,那么它会有所帮助。
<form id="form1" runat="server" action="/">
</form>
答案 1 :(得分:0)
添加到以下页面或母版页:
protected void Page_Load(object sender, EventArgs e)
{
form1.Action = Request.RawUrl;
}