javascript - Angular $locationProvider 与 ASP.NET MVC 路由

标签 javascript asp.net-mvc angularjs asp.net-mvc-5

我正在使用 ASP.NET MVC(使用 RouteCollection 类)处理路由。但我的前端是用 Angular 编写的,在某些地方我想使用 Angular 的 $location 更改 url,并且希望它支持 HTML5,所以我将这一行添加到我的 module.config 中:

$locationProvider.html5Mode(true);

但从那时起,我的路由似乎已经由 Angular 处理了。

例如,我的 SPA 位于 mysite.com/user 上,我想使用 Angular 的 $location 更改 url(因此,当用户单击选项卡时,url 会更改为 mysite.com/user/tab 而无需重新加载)。

但是当用户从该页面导航到任何其他页面(例如 mysite.com/other)时,我希望由 ASP.NET MVC 的路由处理。

现在发生的情况是,我的网址更改为 mysite.com/other,但网站无法导航到该页面,即 MVC 路由不处理更改。

编辑

我没有在 Angular 中定义任何路由,我的所有路由都是在服务器端定义的,并且在添加 $locationProvider.html5Mode(true);

后,服务器端路由就停止工作了>

最佳答案

不,不幸的是没有。如果您的 Angular SPA 托管在 foo.com 上且启用了 HTML 5 模式,则 foo.com/spaRoute1 将访问您的 ASP.Net 服务器并期望找到该路由(可能是 Controller =SpaRoute1 操作=索引)。

您需要将默认路由设置为始终解析到负责提供 SPA 的 Controller /操作。同时定义您需要的任何其他路线,这些路线不特定于您的 SPA。

关于javascript - Angular $locationProvider 与 ASP.NET MVC 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23413923/

相关文章:

javascript - 从 Google 电子表格的下拉列表中选择多个值并按字母顺序打印

javascript - 具体悬停任务

c# - MVC View 不显示验证错误

javascript - 使用 javascript 杀死 webview 浏览器窗口

javascript - 为什么我的 mvc ajax 找不到操作

CSS 图像未在 ASP.NET MVC 中显示

c# - MVC ASP.NET 查询字符串不正确

javascript - AngularJS,使用 Rest 服务,该服务以 Array<Object> 进行响应。如何在表格中显示这一点?

angularjs - 在 AngularJS 应用程序中运行 Karma 单元测试时出现 "Unexpected request"错误

javascript - 如何有条件地禁用 ngTouch 并回退到 ng-click