2010-01-21 77 views
0

我正在嘗試執行一個網站,例如http://example.com,該網站將進入位於帳戶控制器中的我的登錄操作。登錄後,我想重定向到http://example.com/id這裏id是用戶的ID。我可以在ASP.NET MVC路由中做到這一點嗎?

我在Global.asax.cs中已經有了這段代碼。

routes.MapRoute("Login2", 
      "{bg}/{controller}/{action}", 
      new { controller = "Account", action = "SignIn", bg = "" } 
     ); 
routes.MapRoute("Login", 
      "{controller}/{action}", 
      new { controller = "Account", action = "SignIn" } 
      ); 
routes.MapRoute("Default", 
      "{bg}/{controller}/{action}", 
      new { controller = "Home", action = "Index", bg = "" } 
      ); 

當我去http://example.com/id,並且用戶還沒有通過驗證,登錄表單顯示和它去,我希望它在簽約後重定向的頁面。在短短去http://example.com的情況下, ,我正在做一些服務器端的驗證,以瞭解用戶的ID,這也是它的工作。

當我在http://example.com/id並且我想要註冊時,有一個鏈接轉到http://example.com/id/account/signup。它實際上進入了註冊頁面。但是,當我轉到http://example.com並試圖懸停註冊鏈接時,鏈接變爲http://account/signup而不是http://example.com/account/signup

回答

1

檢查一下ScottGu對路由的解釋。它應該幫助你。檢查它here

1

是的,你肯定可以,我在博客網站上做同樣的事情,我創建了我的路線如 {blogSubFolder}/{controller}/{action}。我唯一的評論是我不確定默認值的順序是否重要。

在我的情況下,我讓他們遵循路線本身相同的模式。所以我會說移動語言=「」是第一個默認值而不是最後一個。

對不起編輯,我的答案的一半由於某種原因被切斷。剩下的就是這裏。

我實際上在測試應用中嘗試過相同的路由,並且遇到了一些問題。如果我只是做MVC創建的默認路由,我可以在最後沒有任何操作的情況下指定/ Controller,並且它一切正常。當我用前面的變量(比如你的{language}或者我的{blogSubFolder})做ssame事情時,它實際上不起作用。這正是你所看到的行爲。我唯一能從所有這些中找到的是,如果你沒有控制器,那麼看起來你必須在你的url中指定動作。我試用了包含默認控制器的不同組合,並且不包括它,並嘗試了許多不同的路線,但都沒有取得任何成功。

相關問題