LinkButton的事件时
我必须在设定为外部URL的ASCX页面表单操作LinkButton的事件时<form action>属性设置
<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'
表单,表单总是会回复?我需要从action attrib中读取URL,然后在页面中使用一些隐藏的输入值重定向到它。
谢谢。
实际上,当您单击链接按钮时,表单将回发以处理单击事件。在表单操作中,您已经给出了操作URL,并且它将被重定向到您的操作URL。
从逻辑上讲,你做错了,你必须删除操作URL
为什么不处理的登录功能的处理器bSignIn_Click()
内?
,然后将用户重定向到使用Response.Redirect("http://external.url");
你所拥有的形式,当LinkButton的点击,在表单中的所有数据被张贴到URL,而不是回发到同一所期望的URL形式(因此术语“回传”),您可以在其中处理所有这些事件。
您可以尝试在隐藏字段(而不是表单操作属性)中编写该URL并在代码隐藏中读取该隐藏字段值。
那么这个行为实际上非常奇怪,因为它在同事机器上表现完全不同 - 从SVN中重新检查解决方案,它的工作。奇怪。
ascx's是用户控件。这些应该没有嵌入其中的表格。根据使用的浏览器,在用户控件中放置表单可能会导致出现奇怪和意外的行为。无论如何,无论如何,嵌套表单都无效。 – NotMe 2011-01-28 20:31:04