asp.net-mvc - 如何设置路由以使某些 Controller 操作由 Angular 处理

标签 asp.net-mvc angularjs asp.net-mvc-routing ngroute

我正在开发一个带有“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/

相关文章:

javascript - AngularJS 如何使用过滤器延迟加载图像

c# - Web Api 路由处理程序更改路由数据

asp.net-mvc - ASP.NET MVC 4 路由查询 - 将查询字符串传递给索引操作

javascript - 在 foreach 循环中遍历一个元素并从值中提取首字母缩写词,然后将另一个元素的值设置为派生的首字母缩写词

c# - 如何使用 ASP.NET MVC 中的路由修复 404?

javascript - AngularJS(前端)和 Laravel(后端)中 JSON/Arrays 中的 NULL

asp.net-mvc - asp.net mvc 3 中的嵌套区域

asp.net - Visual Studio无法在mvc3网站web.config中识别ssl和rewrite标签

asp.net-mvc - 返回 HttpPostedFileBase 以查看验证错误

angularjs - 检查对象是否具有属性