ASP页面窗体操作不允许ASP按钮单击启动

本文关键字:ASP 按钮 单击 启动 不允许 操作 窗体 | 更新日期: 2023-09-27 18:21:42

在我的asp页面中,我有一个带有动作url的form,它在asp button click上响应,但现在我也调用了ASP buttononclick方法,但form 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/");
    }

ASP页面窗体操作不允许ASP按钮单击启动

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

您当前有一个拼写错误:runnat="server"应该是runat="server"

您应该使用

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

无更多无更少

像这个一样

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

这可能会对你有所帮助。

您可以在按钮客户端的点击事件上调用java脚本函数,如

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

在头部创建JavaScript函数

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

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

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

如果将form元素的action属性设置为定义事件点击处理程序的文件名,那么它肯定会启动。假设"Button2_Clickk2"是在Default.aspx中定义的。

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

在这种情况下,您并不真正需要"action"属性。

因此,问题的原因不是action属性的存在,而是将回发重定向到其他位置。

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