2

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

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

里面有一个标准的 ASP 链接按钮

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

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

谢谢。

4

4 回答 4

1

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

然后使用将用户重定向到所需的 URLResponse.Redirect("http://external.url");

于 2011-01-27T11:06:51.083 回答
1

好吧,这种行为实际上很奇怪,因为它在同事机器上的行为完全不同——重新检查来自 SVN 的解决方案,它确实有效。奇怪的。

于 2011-01-28T20:25:17.410 回答
1

实际上,当您单击链接按钮时,您的表单将回发以处理单击事件。在表单操作中,您已提供操作 URL,它将被重定向到您的操作 URL。

逻辑上你做错了,你必须删除操作 URL

于 2011-01-27T10:55:00.330 回答
0

使用您拥有的表单,当单击链接按钮时,表单中的所有数据都会发布到 URL,而不是发布回您可以处理所有这些事件的同一个表单(因此称为“回发”)。

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

于 2011-01-27T11:08:04.463 回答