ASP.NET Web API路由规则(二)
2020-12-13 13:44
标签:style blog http io color os ar 使用 sp 默认的规则 在ASP.NET MVC4中 global.asax.cs代码中并无注册默认路由规则的代码 代码如下: 那么默认的路由规则是在哪里注册的呢? 我们发现 在项目中多了一个App_Start文件夹 其中RoteConfig.cs文件就是注册默认路由规则的程序所在了 代码如下: 这里有两个路由规则 一个是针对API请求的路由规则 另一个是针对普通MVC页面请求的路由规则 请求路径以字符串”api”开头的时候将访问webAPI的函数 (注:至于为什么用MapHttpRoute而不是MapRoute;为什么用routeTemplate而不是用url我们再以后的章节介绍) 因为routeTemplate中有了{controller} 所以针对api的请求可以自动映射到指定的controller类 那么是怎么找到合适的Action的呢? 系统根据请求的方式来判断 如果是以GET的方式请求的 那么将匹配controller中以“Get”开头的Action 如果是以POST的方式请求的 那么将匹配controller中以“Post”开头的Action 如果是以PUT的方式请求的 那么将匹配controller中以“Put”开头的Action 如果是以DELETE的方式请求的 那么将匹配controller中以“Delete”开头的Action 除了这几个默认的请求方式 你还可以在客户端定义你自己的请求方式! routeTemplate最后面的id匹配Action中的参数, 这与ASP.NET MVC一致 初步的自定义 那么是不是所有的匹配GET请求的Action都必须以“Get”开头呢 不是的 我们可以用方法特性来标记一个方法属于什么什么请求 如下: 对应的方法特性还有 [HttpPost] [HttpDelete] [HttpPut] 亦可以使用如下这样的方法特性来区分 [AcceptVerbs("GET")] [AcceptVerbs("GET", "HEAD")] 另外如果你在Controller中写了一个函数 必须是public的,必须以Get开头 而又不想让客户端以请求到此Action 那么可以使用方法特性 [NonAction] 来标记此方法 进一步自定义 我们仍然可以把action的名字放到默认的请求规则中 只要把routeTemplate改为如下即可: ASP.NET Web API路由规则(二) 标签:style blog http io color os ar 使用 sp 原文地址:http://www.cnblogs.com/soundcode/p/4054004.html
上一篇:线程的join方法