Я пытаюсь преобразовать маршрутизацию MVC в угловую маршрутизацию для одного из контроллеров MVC с помощью routeProvider. Независимо от того, какая комбинация #, #! или / я использую, я не получаю маршрутизацию на работу.
У меня есть общий HTML-файл, где я пытаюсь загрузить представления в директиве ngview. Ниже мой MainView.html. Он находится в папке Views / Addresses в проекте MVC. Как видно в routeprovider, когда '/' я пытаюсь загрузить Addresses / Index.html. Чтобы избежать конфликта с маршрутизацией MVC, я создал отдельную папку и создал копию Index.html. Однако, когда я нажимаю на ссылку, где загружен MainView, Index.html не загружается. Я попытался изменить базовый href на root ('/'), а также на основной html-файл, куда я пытаюсь загрузить все другие представления. Затем, когда я вручную набираю MainView #! / В URL, он все еще не загружает индекс.html. Однако, когда я добавил Otherwise в routeprovider, который перенаправляет на '/', это правильно загружает требуемую страницу.
@{
ViewBag.Title = "View";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<div ng-app="app">
<div ng-view>
</div>
</div>
@section Scripts{
<script>
var app=angular.module('app',['ngRoute']);
app.config(function ($routeProvider,$locationProvider) {
$locationProvider.html5Mode(true);
$routeProvider
.when("/", {
templateUrl: "Experimental/Addresses/Index.html",
controller: "AddressList"
}).when("/Addresses/Index", {
templateUrl: "Experimental/Addresses/Index.html",
controller: "AddressList"
})
.when("/Addresses/Edit/:id", {
templateUrl: "Experimental/Addresses/Edit.html",
controller: "EditAddress"
})
.otherwise({
redirectTo:"/"
});
});
app.controller('AddressList', ['$scope', '$http', function ($scope, $http) {
$scope.model = [];
$http.get('/Addresses/GetAddresses').then(function (response) {
if (response != null || response != "undefined") {
$scope.model = response.data;
}
});
}]);
</script>
}