【发布时间】:2017-02-21 07:50:03
【问题描述】:
我正在处理一个 MVC 测试项目,看看是否可以使用角度路由。
我所说的使用它的意思是我希望能够为我的应用创建一个登录页面:www.testapp.com
然后,当人们登录时,我希望 MVC 将他们路由到 testapp.com/Dashboard/#/,然后我希望能够使用 ng-view 加载带有 Angular 的页面,如下所示:
testapp.com/Dashboard/#/PageOne、testapp.com/Dashboard/#/PageTwo等
这是我尝试过的: main.js:
angular.module('App', ['ngRoute', 'ngResource']);
angular.module('App').config(function ($routeProvider) {
$routeProvider
.when('/Dashboard', {
templateUrl: 'Dashboard/Index'
})
.when('/PageOne', {
templateUrl: 'Dashboard/PageOne'
})
});
~/Views/Home/Index.cshtml 是我的登陆页面,它没有使用角度路由,它只有 ActionLinks 来登录和注册
~/Views/Dashboard/Index.cshtml 是我使用 ng-app 和 ng-view 的地方,我有这样的链接:<a href="/#/Dashboard">Dashboard</a>, <a href="/#/PageOne">Page One</a>
问题是,当我转到 testapp.com/Dashboard 时,它加载的 URL 变成了 testapp.com/Dashboard#/ 而不是 testapp.com/Dashboard/#/
另一个问题是,当我点击我的链接时,它会直接返回主页/索引,并且 URL 如下所示:testapp.com/#/PageOne 但主页正在显示
在我的 RouteConfig.cs 文件中,它只是默认值:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
所以我的问题是我的代码有什么问题导致它不能像我想要的那样运行?我必须添加/更改什么?
谢谢!
【问题讨论】:
标签: angularjs asp.net-mvc asp.net-mvc-routing angularjs-ng-route