【问题标题】:URL Rewrite Stops Button Event from firingURL 重写停止按钮事件触发
【发布时间】:2016-05-22 12:02:58
【问题描述】:

我有一个继承自母版页的网络表单 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


    【解决方案1】:

    添加到页面或母版页:

    protected void Page_Load(object sender, EventArgs e)
            {       
                form1.Action = Request.RawUrl;        
            }
    

    【讨论】:

      【解决方案2】:

      我找到了一个解决方法,即设置表单标签的操作值。

      我不知道为什么会修复它,所以如果有人能阐明这一点,那将会很有帮助。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-05-09
        • 2011-02-22
        • 1970-01-01
        • 2015-02-11
        • 1970-01-01
        相关资源
        最近更新 更多