【问题标题】:ASP Page Form Action not letting ASP Button onclick firingASP 页面表单操作不让 ASP 按钮 onclick 触发
【发布时间】:2014-09-12 10:56:27
【问题描述】:

在我的 asp 页面中,我有一个带有动作 url 的 form asp button click 但现在我也调用了 onclick 方法 ASP buttonform action 不允许我触发 onclick 事件. 如果我从asp页面中删除form action。我可以触发按钮的onclick。实际上我必须在操作完成后重定向到一页。我的源代码是:

<form action="URL1" runat="server" method="post">
<asp:Button ID="Button2" Text="Submit"   runat="server" OnClick="Button2_Click2"

</form>

C#代码:

   protected void Button2_Click2(object sender, EventArgs e)
    {

        System.Diagnostics.Debug.WriteLine("test final");
        Response.Redirect("http://www.url2.com/");
    }

【问题讨论】:

  • 这是你唯一的表格吗?
  • 那里没有其他数据,但这是主要部分.. 一些文本框数据也在那里
  • 您有多个 FORM 标签吗?因为这在 ASP.NET WebForms 中是不允许的。
  • 对不起对不起..这是唯一的表格..
  • 为什么不在这里使用锚标记并直接重定向它如果 System.Diagnostics.Debug.WriteLine("test final");那不是很重要吗?

标签: c# javascript asp.net .net


【解决方案1】:

您的表单标签格式正确吗?它还需要通过添加 runat="server" 和 id 成为“服务器控件”。

您目前有一个错字:runnat="server" 应该是 runat="server"

【讨论】:

    【解决方案2】:

    你应该使用

        <form runat="server"> 
          .. 
         </form>
    

    不多不少

    【讨论】:

      【解决方案3】:

      这样拍

      <a href="http://www.url2.com/"> 
         <asp:Label ID="lbl" runat="Server" Text="Button1">
       </asp:Label>
      </a>
      

      这可能会对你有所帮助。

      【讨论】:

      • 不工作......表单操作页面只工作......而不是我给按钮的标签
      【解决方案4】:

      您可以像这样在按钮客户端单击事件上调用 java 脚本函数

      <asp:Button ID="Button2" UseSubmitBehavior="true" OnClientClick="javascript:return RedirectURL();" Text="Submit" runat="server" OnClick="Button2_Click2" />
      

      在 head 部分创建 JavaScript 函数

       <script type="text/javascript">
              function RedirectURL() {
                  window.location = "Your URL goes here.";
       return false;
              }
          </script>
      

      【讨论】:

      • 试过这个..但没有工作只有一件事是这个或表单动作
      【解决方案5】:

      ASP.NET 的默认行为是将表单元素的所有内容 POST 回最初创建 html 并提供给客户端的页面类。这是单击按钮时触发事件处理程序的必要条件。

      但是,如果您将表单元素上的 action 属性的值设置为不同文件的名称,则会覆盖默认行为,并且所有内容都会发布到该新位置。如果您的事件处理程序位于不同的位置,并且您没有向其发布任何数据,您怎么能期望它触发。

      如果您将表单元素的 action 属性设置为定义事件单击处理程序的文件的名称,那么它肯定会触发。假设在 Default.aspx 中定义了“Button2_Click2”。

       <form action="Default.aspx" runat="server" method="post">
      

      在这种情况下,您实际上并不需要“action”属性。

      所以问题的原因不是 action 属性的存在,而是您将回发重定向到不同的位置。

      归根结底,这是一个设计问题 - 我感觉您可以通过重新设计解决方案来实现目标。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-02-27
        • 2012-09-12
        • 1970-01-01
        相关资源
        最近更新 更多