2013-10-31 35 views
0

例如,如果用戶嘗試訪問Main操作並在地址欄中輸入mySite/Main,我想強制將其路由到mySite/beforeMain,在經過一些處理後會自動重定向到Main。我如何用路由映射來做到這一點,或者這可能以其他方式進行?我不想在URL中包含查詢字符串參數,或者使用TempData/etc。如果cookies被禁用。強制用戶在訪問URL之前先瀏覽另一個頁面

回答

1

也許你可以使用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" }); 
} 

然後當你點擊主第二次將跳過重定向和你不會結束一個循環。

+0

謝謝,我會檢查URL重寫,但除此之外,現在:從主重定向問題是,我不知道這是否是我第一次重定向,因爲'beforeMain'會重定向回來。沒有檢查,就會出現重定向循環 - 但沒有路徑值或TempData,我無法檢查任何我能想到的東西。 – idlackage

+0

唉唉我明白了,我已經編輯我的答案 – DGibbs

+0

是否有可能讓查詢字符串中不添加到URL?那是我遇到的問題的一部分 - 由於附加的查詢字符串,不想使用路由值。 – idlackage

相關問題