WebApi官网学习记录---web api中的路由
如果一条路由匹配,WebAPI选择controller和action通过如下方式:
1.找到controller,将"controller"赋值给{controller}变量
2.寻找action,web api查看http的请求方式,然后寻找一个以对应请求方式开头的action,如Get请求,需要寻找一个名为Get...的action,这种方式仅支持Get,Post,Put和Delete操作。
除了依据Http请求的方式,还可以显示为action指定http method通过HttpGet, HttpPut, HttpPost和 HttpDelete这些attribute
public class ProductsController : ApiController
{
[HttpGet]
public Product FindProduct(id) {}
}
为一个action指定多个可以接受的http method
public class ProductsController : ApiController
{
[AcceptVerbs("GET", "HEAD")]
public Product FindProduct(id) { } // WebDAV method
[AcceptVerbs("MKCOL")]
public void MakeCollection() { }
}
对于默认的路由模板,web api使用http method来选择action,我们可以创建一个包含action这个占位符的路由
routes.MapHttpRoute(
name: "ActionApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
可以重写action的名字通过使用ActionName这个attribute【如果使用默认的路由模板,这种修改acting的名字方式也没用了】
public class ProductsController : ApiController
{
[HttpGet]
[ActionName("Thumbnail")]
public HttpResponseMessage GetThumbnailImage(int id); [HttpPost]
[ActionName("Thumbnail")]
public void AddThumbnailImage(int id);
}
NonAction这个attribute可以将method标记为不是一个action,此时即使通过路由匹配到了这个方法。
// Not an action method.
[NonAction]
public string GetPrivateData() { ... }
WebApi官网学习记录---web api中的路由的更多相关文章
- WebApi官网学习记录---webapi中controller与action的选择
如果framework找到一个匹配的URI,创建一个包含占位符值的字典,key就是这些占位符(不包括大括号),value来自URI或者默认值,这个字典存储在IHttpRouteData对象中.默认值可 ...
- WebApi2官网学习记录---Attribute Routing
从WebApi 1迁移到WebAPI 2要改变配置代码如下: WebApi 1: protected void Application_Start() { // WARNING - Not compa ...
- 【ASP.NET Web API教程】4.1 ASP.NET Web API中的路由
原文:[ASP.NET Web API教程]4.1 ASP.NET Web API中的路由 注:本文是[ASP.NET Web API系列教程]的一部分,如果您是第一次看本博客文章,请先看前面的内容. ...
- Web API中的路由(一)——约定路由
一.Web API中的路由概念 路由的作用用一句话说明:通过request的uri找到处理该请求的Controller,Action,以及给Action的参数赋值. 一些路由的基本概念: route: ...
- Web API中的路由(二)——属性路由
一.属性路由的概念 路由让webapi将一个uri匹配到对应的action,Web API 2支持一种新类型的路由:属性路由.顾名思义,属性路由使用属性来定义路由.通过属性路由,我们可以更好地控制We ...
- ASP.NET WEB API 中的路由调试与执行过程跟踪
路由调试 RouteDebugger 是调试 ASP.NET MVC 路由的一个好的工具,在ASP.NET WEB API中相应的有 WebApiRouteDebugger ,Nuget安装 Inst ...
- ASP.NET Web API中的路由
ASP.NET Web API的默认路由在App_Start目录中的WebApiConfig.cs文件中定义的. public static class WebApiConfig { public s ...
- WebApi2官网学习记录---OData中的查询
EMD安全 查询语法是基于entity data model(EDM),不是基于底层的model类型,可以从EDM排除一个属性,这样这个属性在client就不能被查询了. 有两种方式可以从EDM中排除 ...
- WebApi2官网学习记录---Configuring
Configuration Settings WebAPI中的configuration settings定义在HttpConfiguration中.有一下成员: DependencyResolver ...
随机推荐
- GDI+ 颜色表示
一.GDI+中:Color位于System.Drawing命名空间下.当我们需要使用某种颜色时,我们可以用以下几种方式: ()Color.FromArgb(alpha, red, green, bl ...
- JS如何得到Repeater中TextBox控件的值
var subsidylCost = document.getElementById("txtSubsidylCost.ClientID").value; 这样获取不到,因为txt ...
- js判断是否为空的代码
方法一: var keyVal= $("#key").val(); if(keyVal==undefined || keyVal=="" || keyVal== ...
- python视频教程大全集下载
python3英文视频教程(全87集) http://pan.baidu.com/s/1dDnGBvV Python从入门到精通视频(全60集)链接:http://pan.baidu.com/s/1e ...
- AngularJS中的控制器示例
<!doctype html> <html ng-app="myApp"> <head> <script src="C:\\Us ...
- Scala学习文档-列表的使用
注:列表是不可变的,不能通过赋值改变列表的元素 列表具有递归结构,数组是连续的 scala里的列表类型是协变的? --> scala中的逆变与协变 分治原则 //自定义实现:::操作符 def ...
- 《Programming WPF》翻译 第6章 3.二进制资源
原文:<Programming WPF>翻译 第6章 3.二进制资源 尽管ResourceDictionary和系统级别的资源适合于作为数据存在于对象中,然而,并不是所有的资源都能很好的满 ...
- CentOS6.4/6.7下Mysql数据库的安装与配置(转载)
通过RPM方式 给centos 安装mysql 最好有光盘,呵呵,网络也可以下载rpm安装包,不过文件较大. 1 挂载光盘 mount /dev/cdrom /mnt/cdrom/mount: b ...
- 深入解析spring中用到的九种设计模式
转载请注明出处,文章首发于:http://itxxz.com/a/javashili/tuozhan/2014/0601/7.html 设计模式作为工作学习中的枕边书,却时常处于勤说不用的尴尬境地,也 ...
- mook_百度百科
mook_百度百科 mook