2017-07-18 39 views
0
  • Web表單ASP.NET 4.61

我已經到位以下路由配置:Web表單的Response.Redirect()不同行爲的路線和頁

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()

  • 當重定向到路由而不結束請求:
  • 的Response.Redirect( 「/頁/ B,真」 );

觸發的事件是:

  • A.aspx的Page_Load()< - 爲什麼?我已經在回發。
  • B.aspx的Page_Load()

  • 當重定向到直接ASPX:
  • 的Response.Redirect( 「/頁/ B.aspx」);

觸發的事件是:

  • B.aspx的Page_Load()

我期待的行爲3.但是,爲什麼當ASPX這是隻有這樣的行爲重定向目標。有人可以向我解釋爲什麼指導路線會產生不同的行爲嗎?

回答

0

您可以使用RedirectToRoute而不是Response.Redirect()。試試這個。

return RedirectToRoute("routePageB"); 
+0

我想你的意思是Response.RedirectToRoute(「SomeRouteName」);沒有區別。同樣,因爲我在OnClick中沒有返回值,因爲該方法是無效的。 – TheEdge

+0

它應該可以正常工作,但我只是想爲什麼它在你的情況下表現怪異。 –