URL重写停止触发按钮事件

问题描述 投票:0回答:2

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

当我单击按钮时,如何获得回发,但实际的按钮事件不会触发。我在事件处理程序上设置了一个断点,但未命中。从同一母版页继承的其他页面仍然可以正常工作。

如果我重写,则默认页面将触发按钮处理程序。

如何确保使用重写重写按钮事件

asp.net .net webforms web-config postback
2个回答
0
投票

我找到了解决此问题的方法,该方法是设置表单标签的操作值。

我不知道为什么能解决这个问题,所以如果有人可以对此有所了解,那将会很有帮助。

<form id="form1" runat="server" action="/">

</form>

0
投票

添加到以下页面或主页:

protected void Page_Load(object sender, EventArgs e)
        {       
            form1.Action = Request.RawUrl;        
        }
© www.soinside.com 2019 - 2024. All rights reserved.