2014-12-30 25 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路由中可用。似乎事后简单:) –

相关问题