我正在开发一个带有“Account” Controller 的旧版 .NET MVC 项目。
它有许多我不想搞乱的操作 - 例如帐户/登录
、帐户/管理配置文件
。
路线 Account/
未处理(不确定这是否是有用的信息)
我的目标是让 AngularJS 在一个 Angular 应用程序中处理 Register 和 ForgotPassword 操作。
目前,我已经为 Register 设置了所有内容并且可以正常工作;帐户 Controller 中有一个操作:
[AllowAnonymous]
public ActionResult Register()
{
return View();
}
在 Angular 中,路由“/”指向注册页面。
随后的 URL 为 /Account/Register#/
有一个 Angular View 。
现在要添加 ForgotPassword 操作,我可以复制为 Register 所做的所有操作,并最终得到 /Account/ForgotPassword#/
。这意味着设置另一个 Angular 应用程序来处理它 - 使用 Angular 路线“/”
我更喜欢使用 URL:/Account/#Register
和 /Account/#ForgotPassword
,然后使用 Angular 的路由服务来决定是否加载 Register 或忘记了 Angular View 。我希望在不弄乱旧帐户操作的情况下执行此操作,尽管最终我希望将其他操作迁移到 ng-app 下。
我了解 Angular 的路由。
所以我的问题是如何设置 RouteConfig.cs 来处理/Account/#Register 和/Account/#ForgotPassword,以便 Angular 处理路由的操作部分?
最佳答案
URL 的哈希部分(#
以及后面的所有内容)不会发送到服务器,因此路由无法处理它。
您当然可以有一个 Index
操作来处理 Account
中的任何内容,并且该操作将使用“Angular”路由集初始化 Angular 应用程序以处理 /
(实际上是/Account/#/
)和/ForgotPassword
(实际上是/Account/#/ForgotPassword
)。这可能是您想要的最接近的。
在类似的应用程序中,我没有太多共享,因此每个 MVC 操作都是它自己的 Angular 应用程序。我在共享指令中共享了指令和更多内容,每个页面 Angular 应用程序都将其作为依赖项。
关于asp.net-mvc - 如何设置路由以使某些 Controller 操作由 Angular 处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27706692/