我在设置为外部网址的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,然后在页面中重定向到一些隐藏的输入值。
感谢。
答案 0 :(得分:1)
实际上,当您单击链接按钮时,您的表单将回发以处理单击事件。在表单操作上,您已经提供了操作网址,系统会将其重定向到您的操作网址。
逻辑上你做错了,你必须删除行动网址
答案 1 :(得分:1)
为什么不处理处理程序bSignIn_Click()
中的登录功能?
然后使用Response.Redirect("http://external.url");
答案 2 :(得分:1)
这种行为实际上非常奇怪,因为它在同事机器上表现完全不同 - 从SVN重新检查解决方案,并且它起作用了。奇怪。
答案 3 :(得分:0)
使用您拥有的表单,单击Linkbutton时,表单中的所有数据都会发布到URL,而不会发回到相同的表单(因此称为“回发”),您可以在其中处理所有这些事件
您可以尝试在隐藏字段(而不是表单操作属性)中编写该URL,并在代码隐藏中读取该隐藏字段值。