У меня есть приложение Angular MVC, в котором есть несколько контроллеров. Default и другой пользовательский контроллер, который я добавил.
http://example.com/home/
http://example.com/ManageSummaryInfo/
Вся моя бизнес-логика заключается в управлении ManageSummaryInfo
.
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "ManageSummaryInfo", action = "HomePage", id = UrlParameter.Optional }
);
В Angular Routing у меня есть это так,
$routeProvider.when('/showsummary',
{
templateUrl: 'ManageSummaryInfo/ShowSummary',
controller: 'ShowSummaryController'
});
$routeProvider.when('/showerror',
{
templateUrl: 'ManageSummaryInfo/ShowError',
controller: 'ShowErrorController'
});
$routeProvider.when('/showplatform',
{
templateUrl: 'ManageSummaryInfo/ShowPlatform',
controller: 'ShowPlatformController'
});
Мои представления также настраиваются вокруг ManageSummaryInfo
Controller, но когда я запускаю, я попадаю на домашнюю страницу, после чего я нажимаю на один из элементов, чтобы перевести меня на следующую страницу. Но, я не получаю маршрутизацию, и у меня есть 404 - The resource cannot be found.
ошибка.
Вот как выглядят мои взгляды,
Views
--ManageSummaryInfo
----HomePage.cshtml
----Index.cshtml
----ShowSummary.cshtml
----ShowError.cshtml
----ShowPlatform.cshtml
Мой вопрос, когда у нас есть контроллеры на нашем маршруте (т. Е. Http://example.com/ManageSummaryInfo / - как будут угловые маршруты и почему мой файл не найден.
Я новичок в С# MVC Framework. Мне не хватает чего-то, связанного с маршрутизацией ASP.NEt? Любая помощь будет оценена по достоинству. Я пытался быть сверстником, но если вам понадобится дополнительная информация, я рад предоставить больше кода (Pastebin или что-то еще.
Заранее спасибо!
Редактировать:
Добавление класса контроллера в соответствии с запросом,
public class ManageSummaryInfoController : Controller
{
// GET: ManageSummaryInfo
public ActionResult Index()
{
return View();
}
public ActionResult HomePage()
{
return View();
}
public ActionResult ShowPlatform()
{
return PartialView("ShowPlatform");
}
public ActionResult ShowSummary()
{
return PartialView("ShowSummary");
}
public ActionResult ShowError()
{
return PartialView("ShowError");
}
}
1) В представлении (html-код) по ссылке (элементу) с href showsummary (и другим) добавьте '#' перед 'showsummary'.
2) Убедитесь, что у вас есть
<script src=https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.8/angular-route.min.js></script>
3) Проверьте, что у вас есть зависимость от ng-route:
angular.module('myModule', ['ngRoute']);
Угловая маршрутизация работает только с html файлом (не на chtml), поэтому вместо этого создайте html файл.
var adminApp = angular.module('adminApp', ['ngRoute']);
adminApp.config(['$routeProvider',
function ($routeProvider) {
$routeProvider.
when('/ar', {
templateUrl: 'auto_responder.html',
controller: 'arCtrl'
}).
when('/broadcast', {
templateUrl: 'broadcast.html',
controller: 'broadcastCtrl'
}).
otherwise({
redirectTo: '/ar'
});
}]);
http://example.com/ManageSummaryInfo/HomePage
и оттуда, щелкая мой объект DOM с настроенным href, я http://example.com/ManageSummaryInfo/showsummary
страницу http://example.com/ManageSummaryInfo/showsummary
. Как мне сделать это независимым от контроллера, например, нажать на мой http://example.com/HomePage
и при этом выполнить действие для моего ManageSummaryInfoController
?