asp.net:响应.重定向不工作

wydwbb8l  于 2023-11-20  发布在  .NET
关注(0)|答案(7)|浏览(126)

我有一个.aspx表单,其中有一个组合框,包含从DB表检索的主题。
点击提交按钮,可以在网格视图中查看与该主题相关的问题。
我通过在按钮单击事件中调用函数FillGrid()来实现。
我还为我的gridview设置了pageindexchanging,其中再次调用了FillGrid()。
在我的FillGrid()函数中,我使用了一个try catch块。如果发生错误,我想使用Response.Redirect()将页面重定向到错误页面。问题是这个response.redirect不起作用。其中一个原因是按钮点击表单被发送两次。因为在到达response.redirect语句流后,返回到按钮点击,在那里调用FillGrid()。
我该如何解决这个问题?或者简单地说,我该如何防止表单重复发布?

6kkfgxo0

6kkfgxo01#

例如,你需要链接index.aspx。所以你写这个:

Response.Redirect("index.aspx", true);

字符串
但是Response.redirect不工作。现在转到设计视图,选择您要设置Response.redirect的按钮,然后按F4,将打开按钮属性,然后您需要找到PostBackUrl选项,然后找到您想要的URL。
请看这张图片:


的数据

gkl3eglg

gkl3eglg2#

好吧,这样...

Response.Redirect("~/err.aspx", false);
HttpContext.Current.ApplicationInstance.CompleteRequest();

字符串
现在,原始页面将不会回发到浏览器,您将被重定向到新页面。Response.Redirect("~/err.aspx", true);的问题是,以这种方式形成异常,这可能会将控件发送到catch块。
·另一种方法当然是Server.transfer(),但我不认为你想要这样。

z8dt9xmd

z8dt9xmd3#

我遇到了完全相同的问题。重定向不工作,因为内容页的母版页有错误。这是示例代码:

FormsAuthentication.SetAuthCookie(loginUserDetail.UserName, false);
Response.Redirect(FormsAuthentication.DefaultUrl, false);

字符串
DefaultUrl值为“/membersarea/wellcome.aspx”,并且wellcome.aspx有一个名为Site. master的母版页。
Site.master有JavaScript错误,所以Response.Redirect命令不起作用。

dffbzjpn

dffbzjpn4#

试试这个:

Response.Redirect("url");
Response.End;

字符串

pbwdgjma

pbwdgjma5#

我相信你看到的行为是正确的。响应.重定向是通过浏览器完成的。所以当你得到一个错误时,页面被发布到浏览器,浏览器触发重定向。重定向导致page_load再次触发(这是ASP.NET中的标准流程)。
虽然您可以使用Server.Transfer来解决这个问题,但我建议您使用ASP.NET中内置的错误重定向。有关可用内容以及如何使用它们的更多信息,请参阅this page

ecfsfe2w

ecfsfe2w6#

对我来说,重定向问题是与我的web.config文件。在该文件中,每个页面都是专门允许访问的。一旦我添加了代码块,我将重定向到web.config文件中的新页面,重定向工作。希望,如果有人有类似的问题,它可以保存他们的时间,而不是像我一样浪费大部分时间。
在web.config文件中,我添加了如下代码块:

<location path="sitedirectory/yournewpage.aspx">
    <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
    </system.web>
  </location>

字符串

ybzsozfc

ybzsozfc7#

当所有其他方法都失败时,您可以尝试JavaScript,例如location.href=someUrl;location.replace(someUrl);。使用一些服务器端代码,设置JavaScript标志以触发JavaScript,或有条件地生成所需的JavaScript。我通常在网页底部触发JavaScript。

相关问题