刚才忘了说了,在控制器名重名的情况下,特性路由是不生效的.不然的话就可以利用特性路由解决同名的问题了. 而且这种不生效是真的不生效,不会提示任何错误,重名或者什么的,直接会报告404,所以也是个坑.…
原文:[ASP.NET Web API教程]4.1 ASP.NET Web API中的路由 注:本文是[ASP.NET Web API系列教程]的一部分,如果您是第一次看本博客文章,请先看前面的内容. 4.1 Routing in ASP.NET Web API 4.1 ASP.NET Web API中的路由 本文引自:http://www.asp.net/web-api/overview/web-api-routing-and-actions/routing-in-aspnet-web-api…
路由调试 RouteDebugger 是调试 ASP.NET MVC 路由的一个好的工具,在ASP.NET WEB API中相应的有 WebApiRouteDebugger ,Nuget安装 Install-Package WebApiRouteDebugger 后访问:http://localhost:31916/rd ,出现如下错误: [A]System.Web.WebPages.Razor.Configuration.HostSection 无法强制转换为 [B]System.Web.We…
ASP.NET Web API的默认路由在App_Start目录中的WebApiConfig.cs文件中定义的. public static class WebApiConfig { public static void Register(HttpConfiguration config) { // Web API 配置和服务 // Web API 路由 config.MapHttpAttributeRoutes(); config.Routes.MapHttpRoute( name: "Def…
[译]Routing in ASP.NET Web API 单击此处查看原文 本文阐述了ASP.NET Web API是如何将HTTP requests路由到controllers的. 如果你对ASP.NET MVC非常的熟悉,那你将感受到Web API routing与MVC routing是非常的相似的.主要的不同点在于Web API选择action的时候,使用的是HTTP method,并非URI path.当然,你也可以在Web API中使用MVC风格的routing.以下,本文将不出现…
并非所有的异常都需要 try-catch 进行重复的处理,这会导致大量的重复性代码,一旦后续系统出现异常处理机制的修改,随着代码量增多,修改也会变的更加困难. ASP.NET Web API 中特别增加了全局异常过滤器功能,诸如于此的还有很多过滤器可供开发者选择,以实现面向切面编程,它们在取代重复性编码这一目标的路上,作出很多贡献,同时降低了后期维护代码的难度,提升了可读性. 大多数异常处理的 try-catch 都通常是同样的写法(记录异常日志.返回错误信息等),因此我们可以将他们统一写在一个…
虽然通过Visual Studio向导在ASP.NET Web API项目中创建的 Controller类型默认派生与抽象类型ApiController,但是ASP.NET Web API框架本身只要求它实现IHttpController接口即可,所以我们将其统称为HttpController.既然HttpController指的是所有实现了IHttpController接口的类型,我们自然得先来了解一下这个接口的定义.如下面的代码片断所示,在IHttpController接口中仅仅定义了唯一的…
谨以此文感谢关注此系列文章的园友!前段时间本以为此系列文章已没多少人关注,而不打算继续下去了.因为文章贴出来之后,看的人似乎不多,也很少有人对这些文章发表评论,而且几乎无人给予“推荐”.但前几天有人询问为何很久没有更新,这让我感觉把这文章翻译出来还是有价值的.为此,本人打算将此工作继续下去.这些关于Web API的技术文章均由微软专业人员撰写,虽然文章作为博客帖子而写得比较简单,但如果仔细揣摩其内容,应当还是能够有不少收获的,也希望我的这些译文能够使那些对Web API有兴趣的园友从中得到一些收…
ASP.NET Web API中的action参数类型可以分为简单类型和复杂类型. HttpResponseMessage Put(int id, Product item) id是int类型,是简单类型,item是Product类型,是复杂类型. 简单类型实参值从哪里读取呢?--一般从URI中读取 所谓的简单类型包括哪些呢?--int, bool, double, TimeSpan, DateTime, Guid, decimal, string,以及能从字符串转换而来的类型 复杂类型实参值从…
在Asp.net Web API中,对业务数据的分页查询处理是一个非常常见的接口,我们需要在查询条件对象中,定义好相应业务的查询参数,排序信息,请求记录数和每页大小信息等内容,根据这些查询信息,我们在后端的Asp.net Web API中实现对这些数据的按需获取,并排序返回给客户端使用.本篇随笔介绍利用查询条件对象,在Asp.net Web API中实现对业务数据的分页查询处理. 1.Web API控制器基类关系 为了更好的进行相关方法的封装处理,我们把一些常规的接口处理放在BaseApiCon…