ASP.Net Web-api 不可多得的零基础教程3
2018-04-11 19:27
525 查看
在ASP.Net Web-api 不可多得的零基础教程2中,我们使用了[AcceptVerbs("GET")]或者[HttpGet]两种特性标记来将方法映射到Http请求上。
但是,需要注意的是,上述的两种方法并没有改变请求的基本格式,什么意思呢?public IEnumerable<Employee> Get()
{
return list;
}
那么问题来了,我如果既不想使用Getxxx开头去命名,又不想加[AcceptVerbs("GET")]或者[HttpGet]两种特性,又该怎么处理呢?
我们首先打开WebApiConfig.cs文件:
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}聪明的你发现了Route这个词,没错,就是路由,联想到路径,联想到Url,那么就知道它的用处了。
这里代码定义了一种路由格式,routeTemplate: "api/{controller}/{id}"
它的定义就代表url是http://localhost:12345/api/Demo/123
这里的Demo就是对应的DemoController,id就是123
那么,id=Parameter.Optional是什么意思呢?意思是可以有也可以没有,它是可选的。
也就是说,这个路由模板,代表着两种url:
http://localhost:12345/api/Demo
http://localhost:12345/api/Demo/123
那么,下面的两种方法,我想去使用,该怎么办?
public IEnumerable<Employee> RpcStyleGet()
{
return list;
}
public Employee GetEmployeeRpcStyle(int id)
{
return list.First(e => e.Id == id);
}先做以下工作:在
public IEnumerable<Employee> RpcStyleGet()
{
return list;
}
public Employee GetEmployeeRpcStyle(int id)
{
return list.First(e => e.Id == id);
}url分别是:http://localhost:12345/api/Demo/rpcstyleget http://localhost:12345/api/Demo/getemployeerpcstyle/12345
怎么样,你有没有学会啊?
但是,需要注意的是,上述的两种方法并没有改变请求的基本格式,什么意思呢?public IEnumerable<Employee> Get()
{
return list;
}
[HttpGet] public IEnumerable<Employee> RpcStyleGet() { return list; }上面的两种方式,他们的请求url完全一样,例如:http://localhost:12345/api/Demo
那么问题来了,我如果既不想使用Getxxx开头去命名,又不想加[AcceptVerbs("GET")]或者[HttpGet]两种特性,又该怎么处理呢?
我们首先打开WebApiConfig.cs文件:
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}聪明的你发现了Route这个词,没错,就是路由,联想到路径,联想到Url,那么就知道它的用处了。
这里代码定义了一种路由格式,routeTemplate: "api/{controller}/{id}"
它的定义就代表url是http://localhost:12345/api/Demo/123
这里的Demo就是对应的DemoController,id就是123
那么,id=Parameter.Optional是什么意思呢?意思是可以有也可以没有,它是可选的。
也就是说,这个路由模板,代表着两种url:
http://localhost:12345/api/Demo
http://localhost:12345/api/Demo/123
那么,下面的两种方法,我想去使用,该怎么办?
public IEnumerable<Employee> RpcStyleGet()
{
return list;
}
public Employee GetEmployeeRpcStyle(int id)
{
return list.First(e => e.Id == id);
}先做以下工作:在
WebApiConfig.cs中Register方法添加如下代码:
config.Routes.MapHttpRoute( name: "RpcApi", routeTemplate: "api/{controller}/{action}/{id}", defaults: new { id = RouteParameter.Optional } );
并且放在默认的模板代码上面:效果如下
public static class WebApiConfig那么,那两个方法就可以使用了:
{
public static void Register(HttpConfiguration config)
{
config.Routes.MapHttpRoute( name: "RpcApi", routeTemplate: "api/{controller}/{action}/{id}", defaults: new { id = RouteParameter.Optional } );
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
public IEnumerable<Employee> RpcStyleGet()
{
return list;
}
public Employee GetEmployeeRpcStyle(int id)
{
return list.First(e => e.Id == id);
}url分别是:http://localhost:12345/api/Demo/rpcstyleget http://localhost:12345/api/Demo/getemployeerpcstyle/12345
怎么样,你有没有学会啊?
相关文章推荐
- ASP.Net Web-api 不可多得的零基础教程7
- ASP.Net Web-api 不可多得的零基础教程8
- Asp.Net Web-api 不可多得的零基础教程10
- ASP.Net Web-api 不可多得的零基础教程2
- ASP.Net Web-api 不可多得的零基础教程1
- Asp.Net Web-api 不可多得的零基础教程9
- ASP.Net Web-api 不可多得的零基础教程4
- ASP.Net Web-api 不可多得的零基础教程6
- [ASP.NET 教程] 一. Web基础
- C#实现多级子目录Zip压缩解压实例 NET4.6下的UTC时间转换 [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了 asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程 asp.net core异步进行新增操作并且需要判断某些字段是否重复的三种解决方案 .NET Core开发日志
- 问题:调用 ASP.Net Core WebAPI的HTTP POST方法时,从 [FromBody] 中读取的 MongoDB GeoJsonObjectModel成员总是null
- asp-net-web-api 自定义URl插件
- [转]Getting started with ASP.NET Web API OData in 3 simple steps
- Asp.net Core WebApi 返回JSON自动驼峰格式化问题
- Docker容器环境下ASP.NET Core Web API
- ASP.NET Core Web API下事件驱动型架构的实现(四):CQRS架构中聚合与聚合根的实现
- 支持多个版本的ASP.NET Core Web API
- ASP.NET Web 应用开发实战快速上手系列 2——C#基础
- ASP.Net Core WebApi几种版本控制对比
- ASP.NET入门教程:Web表单维持对象的ViewState