【发布时间】:2016-06-24 01:20:49
【问题描述】:
我正在使用带有 ngRoute 模块的 ASP.NET MVC 和 AngularJS 开发一个 Web 应用程序。配置工作正常,但 URL 包含 #/,我想删除它们。我知道重点是在<head> 中添加$locationProvider.html5Mode(true); 和<base href="/">,但是与服务器端路由存在一些冲突,我无法让它工作。
这是路由提供者
$routeProvider
.when("/", {
templateUrl: "Home/Phones",
controller: "firstController"
})
.when("/phone", {
templateUrl: "Home/Phone",
controller: "secondController"
})
通过http://localhost/test/#/和http://localhost/test/#/phone可以正常访问页面。
现在,如果我在索引页的标题部分添加$locationProvider.html5Mode(true); 和<base href="test">,我可以在http://localhost/test/ 访问默认页,但该页是空的。尝试访问时,http://localhost/test/phone 出现错误,找不到 404 页面。
那么...如何解决第一个问题?控制台没有显示任何错误,不知道该尝试什么...
我想我至少应该更改我的RouteConfig.cs,而不是包含默认值
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
【问题讨论】:
标签: javascript angularjs asp.net-mvc ngroute