Мой веб-приложение ASP.NET является гибридом, который может иметь все различные типы контроллеров -маршрутизации для asp.net Web API вместе с OData
- контроллеров asp.net MVC (производными от
System.Web.Mvc.Controller
) - осины контроллеры .ner Web API (полученные из
System.Web.Http.ApiController
) и - asp.net на основе контроллеров OData (полученные из
System.Web.Http.OData.ODataController
)
Я пытаюсь настроить ро uting в WebApiConfig.cs
для Web API и OData контроллеров и это выглядит примерно так -
public static void Register(HttpConfiguration config)
{
config.Routes.MapODataRoute("OData", "odata", CreateEdmModel());
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional });
}
public static IEdmModel CreateEdmModel()
{
ODataConventionModelBuilder modelBuilder = new ODataConventionModelBuilder();
modelBuilder.EntitySet<Detail>("Details");
return modelBuilder.GetEdmModel();
}
маршруты, которые работают -
- API/значения/GetSummary (для
ASP.Net Web API
на основеValuesController
методомGetSummary
aciton) - Главная страница (для обычных asp.net MVC
HomeController
)
route эс то не работы-
- OData/Резюме
- OData/Резюме/GetSummary
Мои обычные контроллеры MVC выполнить хорошо, контроллеры Web API также работают хорошо, но как-то маршрутизация не работает OData контроллеры. Кто-нибудь пытался смешивать и сопоставлять в одном приложении и способен заставить его работать? Мне также нужно указать имя метода действия в маршруте, поскольку весь метод действий в основном равен GET
, поскольку это приложение для отчетов.
Можете ли вы опубликовать код для вашего SummaryOdataController Я думаю, что проблема может быть там? – bytebender