0
例如,如果用戶嘗試訪問Main
操作並在地址欄中輸入mySite/Main
,我想強制將其路由到mySite/beforeMain
,在經過一些處理後會自動重定向到Main
。我如何用路由映射來做到這一點,或者這可能以其他方式進行?我不想在URL中包含查詢字符串參數,或者使用TempData/etc。如果cookies被禁用。強制用戶在訪問URL之前先瀏覽另一個頁面
例如,如果用戶嘗試訪問Main
操作並在地址欄中輸入mySite/Main
,我想強制將其路由到mySite/beforeMain
,在經過一些處理後會自動重定向到Main
。我如何用路由映射來做到這一點,或者這可能以其他方式進行?我不想在URL中包含查詢字符串參數,或者使用TempData/etc。如果cookies被禁用。強制用戶在訪問URL之前先瀏覽另一個頁面
也許你可以使用Url Rewrite。
另外,您可以使用RedirectToAction
:
public ActionResult Main()
{
if(Request.QueryString["redirected"].ToString() != "true")
{
return RedirectToAction("beforeMain", "mySite");
}
return View();
}
然後你beforeMain
操作可能是:
public ActionResult BeforeMain()
{
//do some stuff
return RedirectToAction("Main", new { redirected = "true" });
}
然後當你點擊主第二次將跳過重定向和你不會結束一個循環。
謝謝,我會檢查URL重寫,但除此之外,現在:從主重定向問題是,我不知道這是否是我第一次重定向,因爲'beforeMain'會重定向回來。沒有檢查,就會出現重定向循環 - 但沒有路徑值或TempData,我無法檢查任何我能想到的東西。 – idlackage
唉唉我明白了,我已經編輯我的答案 – DGibbs
是否有可能讓查詢字符串中不添加到URL?那是我遇到的問題的一部分 - 由於附加的查詢字符串,不想使用路由值。 – idlackage