【问题标题】:Webforms Response.Redirect() different behaviour for route and pageWebforms Response.Redirect() 路由和页面的不同行为
【发布时间】:2017-07-18 03:15:21
【问题描述】:
  • Webforms ASP.NET 4.61

我有以下路线配置:

aRoutes.MapPageRoute("routePageA", "page/a", "~/Pages/A.aspx");
aRoutes.MapPageRoute("routePageB", "page/b", "~/Pages/B.aspx");

我在 A.aspx 的点击处理程序中有代码重定向到 B.aspx,但是我得到了不同的行为,如下所示:

  1. 当重定向到路由而不结束请求时:

    Response.Redirect("/page/b");

触发的事件是:

  • A.aspx Page_Load()
  • B.aspx Page_Load()

    1. 在不结束请求的情况下重定向到路由时:

    Response.Redirect("/page/b, true");

触发的事件是:

  • A.aspx Page_Load()
  • B.aspx Page_Load()

    1. 直接重定向到 aspx 时:

    Response.Redirect("/Pages/B.aspx");

触发的事件是:

  • B.aspx Page_Load()

我期望的行为是 3。但是为什么只有当 ASPX 是重定向目标时才会这样。有人可以向我解释为什么指向一条路线会产生不同的行为吗?

【问题讨论】:

    标签: c# asp.net redirect webforms


    【解决方案1】:

    您可以使用 RedirectToRoute 代替 Response.Redirect()。试试这个吧。

    return RedirectToRoute("routePageB");
    

    【讨论】:

    • 我猜你的意思是 Response.RedirectToRoute("SomeRouteName");没什么区别。同样,由于我在 OnClick 中,因此该方法是无效的,因此没有返回值。
    • 它应该可以正常工作,但我只是在想为什么它在你的情况下表现得很奇怪。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-11
    • 1970-01-01
    相关资源
    最近更新 更多