设置<form action =“”>属性时,LinkBut​​ton事件不会触发</form>

时间:2011-01-27 10:49:06

标签: c# asp.net webforms linkbutton

我在设置为外部网址的ASCX页面中有一个表单操作

<form id="fLoginForm" runat="server" action="http://external.url" method="post" defaultbutton="bSignIn">

里面有一个标准的ASP linkbutton

<asp:LinkButton CssClass="btn" ID="bSignIn" runat="server" Text="Sign In" OnClick="bSignIn_Click" />

当我在表单标记上设置action="http://external.url"时,事件“bSignin_Click”永远不会被触发。但是,当我删除该操作时,它按预期工作。我想runat='server'形式,表格会一直回传?我需要从动作attrib读取URL,然后在页面中重定向到一些隐藏的输入值。

感谢。

4 个答案:

答案 0 :(得分:1)

实际上,当您单击链接按钮时,您的表单将回发以处理单击事件。在表单操作上,您已经提供了操作网址,系统会将其重定向到您的操作网址。

逻辑上你做错了,你必须删除行动网址

答案 1 :(得分:1)

为什么不处理处理程序bSignIn_Click()中的登录功能?

然后使用Response.Redirect("http://external.url");

将用户重定向到所需的网址

答案 2 :(得分:1)

这种行为实际上非常奇怪,因为它在同事机器上表现完全不同 - 从SVN重新检查解决方案,并且它起作用了。奇怪。

答案 3 :(得分:0)

使用您拥有的表单,单击Linkbutton时,表单中的所有数据都会发布到URL,而不会发回到相同的表单(因此称为“回发”),您可以在其中处理所有这些事件

您可以尝试在隐藏字段(而不是表单操作属性)中编写该URL,并在代码隐藏中读取该隐藏字段值。