asp.net web api和odata的路由
我的asp.net Web应用程序是混合的,可以拥有所有不同类型的控制器 –
> asp.net MVC控制器(派生自System.Web.Mvc.Controller) 我正在尝试在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 / Values / GetSummary(对于基于ASP.Net Web API的ValuesController和GetSummary aciton方法) 不起作用的路线 – > odata /摘要 我的常规MVC控制器执行良好,Web API控制器也工作正常,但不知何故路由不适用于OData控制器.有没有人尝试在一个应用程序中混合搭配并能够使其工作?我还需要在路由中指定操作方法名称,因为所有操作方法都是GET,因为它是一个报告应用程序. 解决方法
是的,可以混合所有这些控制器.如果首先在Global.asax.cs中激活MVC的路由,则MVC的默认路由可能不允许到达OData控制器.
如下所示更改Global.asax.cs中的行顺序将解决该问题.如果使用项目模板,MVC控制器路由通常在WebAPIConfig.cs中的RouteConfig.cs,Web API和OData路由中设置. protected void Application_Start() { AreaRegistration.RegisterAllAreas(); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); GlobalConfiguration.Configure(WebApiConfig.Register); // moved up before MVC's setup RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-ajax – Ajax脚本管理器和母版页
- asp.net字符串分割函数使用方法分享
- asp.net-mvc – 如何重新安装已经在解决方案的packages目录
- asp.net – log4net没有记录ThreadContext
- asp.net-mvc – 使用ViewData或不使用ViewData
- asp.net – 在打开和打印多个记录时强制HTML / ASP中的分页
- asp.net-mvc-3 – 在ASP.NET MVC 3中使用不显眼的验证,如何
- asp.net – 在.aspx页面上显示图像的字节
- asp.net-mvc-4 – “你没有权限查看这个目录或页面.”在IIS
- asp.net – .NET:如何从Flash创建缩略图
- asp.net – 在没有完全回发的情况下,在AJAX更新面
- asp.net – 证明telerik报告的HtmlTextBox中的文
- asp.net-mvc-3 – 以弹出方式打开视图
- asp.net-mvc – ASP.net MVC:在RenderAction中获
- asp.net-mvc-3 – 如何在Mvccontrib网格模型中使
- asp.net-mvc-3 – 从MVC 3中使用Razor View引擎的
- asp.net-4.0 – 我可以强制asp设置与id相同的名称
- Asp.Net超大文件上传问题解决
- 更改JqGrid列的顺序
- asp.net – FormView ConvertEmptyStringToNull和