Я пытаюсь передать значения конфигурации, чтобы загрузить одностраничное приложение AngularJs, размещенное в приложении MVC, которое использует WebApi (см. Ниже из представления Razor, это достигается путем наследования BasePage и зависимости, впрыскивающего службу Serializer/FinancialYears).Как получить список всех настроенных маршрутов WebApi в asp.net MVC?
<script>
var angularInitConfig = @Html.Raw(Serializier.Serialize(new {
financialYears = FinancialYearsService.GetFinancialYears()
}));
</script>
Это прекрасно работает, но я бы очень хотел, чтобы иметь возможность расширить его включить маршруты из моего WebAPI приложения, чтобы избежать того, чтобы настроить конечные точки в обоих приложение WebAPI и приложение AngularJs индивидуально.
Пробираясь в классе RouteTable.Routes
, я вижу, что требуемая информация доступна и доступна изнутри представления, однако я не смог ее извлечь.
Так что мне бы хотелось сделать это, сгенерировав набор объектов, как определено ниже, из класса RouteTable.Routes
, сериализуйте их и выплюните в конфигурации bootstrap для приложения AngularJS.
new {
name = "SomeService",
route = "api/{financialYearId}/someservice",
method = "POST"
}
ли кто-нибудь есть идеи, как извлечь эту информацию из RoutesTable.Routes
? Есть ли более простой способ генерации требуемых данных?
NB. Все WebAPI маршруты настроены явно с помощью атрибута Routes
как таковой:
[HttpGet]
[Route("api/{financialYearId}/someservice")]
Напишите сериализатор или используйте обобщенный, как Newtonsoft.Json. –
Вы даже прочитали вопрос? Сериализация работает отлично, я хочу извлечь нужные данные из RouteTable.Routes и передать ее моему рабочему сериализатору, который будет передан обратно в Angular. –
Да, я прочитал вопрос. Вам нужно написать код. Вы спрашиваете, как написать этот код? –