У меня есть тестовый проект MVC, над которым я работаю, чтобы посмотреть, смогу ли я заставить угловую маршрутизацию работать с ним.
Что я имею в виду под работой с ним, так это то, что я хочу иметь целевую страницу для своего приложения: www.testapp.com
Затем, когда люди входят в систему, я хочу, чтобы MVC перенаправлял их на testapp.com/Dashboard/#/
, а затем я хочу иметь возможность использовать ng-view для загрузки страниц с помощью Angualar, например: 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 }
);
}
Итак, мой вопрос: что не так с моим кодом, из-за чего он не работает так, как я хочу? Что мне добавить/изменить?
Благодарю вас!