2014-12-30 54 views
2

我正在使用「帳戶」控制器處理遺留的.NET MVC項目。如何設置路由以使角度處理一些控制器操作

它有一些我不想惹的事 - 例如, Account/LoginAccount/ManageProfile

路線Account/沒有被處理(不知道這是有用的信息)

我的目標是讓AngularJS處理在一個角應用的註冊和ForgotPassword行動。

目前,我已經爲註冊表設置了一切,帳戶控制器中有一個操作:

[AllowAnonymous] 
    public ActionResult Register() 
    { 
     return View(); 
    } 

在Angular中,路徑「/」指向註冊頁面。 而後續的URL是/Account/Register#/有一個角度視圖。

現在要添加一個ForgotPassword操作,我可以複製我爲Register所做的所有操作,並以/Account/ForgotPassword#/結尾。這意味着要設置另一個角度應用來處理它 - 使用角度路由「/」

我寧願改爲使用URL:/Account/#Register/Account/#ForgotPassword,然後使用角度的路由服務來決定是否加載註冊或忘記角度觀點。我想這樣做而不會搞亂傳統的帳戶操作,儘管最終我想將其他操作遷移到ng-app下。

我明白Angular的路由。

所以我的問題是我該如何設置RouteConfig.cs來處理/ Account /#Register和/ Account /#ForgotPassword以這種方式處理路由的動作部分?

回答

2

URL的散列部分(#及其後的所有內容)不會發送到服務器,因此路由無法處理它。

當然,你可以有一個Index行動,在Account處理任何事情,這個人會初始化以「角」路由處理/設定的角度應用(這實際上是/Account/#/)和/ForgotPassword(這是/Account/#/ForgotPassword)。這可能是你想要的最接近的。

在類似的應用程序中,我沒有那麼多的共享,所以每個MVC操作都是它自己的Angular應用程序。我在共享指令中共享指令和更多東西,每個頁面Angular應用程序都有一個依賴關係。

+0

感謝您的回答。我爲「帳戶」設置了一個路徑,使用{controller =「Account」,action =「Index」},它現在可以工作。/Account /#/ ForgotPassword使用Index操作,然後ForgotPassword在angular路由中可用。似乎事後簡單:) –

相關問題