Asp.Net Core WebAPI入门整理(二)简单示例
2017-05-30 16:11
841 查看
一、Core WebAPI中的序列化
使用的是Newtonsoft.Json,自定义全局配置处理:
二、Core WebAPI中的路由处理使用方法注释的方式处理,
控制器路由:[Route("api/Menu")]
Action路由:1.根据HttpMethod路由 [HttpPut] 2.根据Template模板路由[HttpGet("{id}")]
Core WebAPI中返回数据处理,提供了更 多的选择:
1.OKResult,OkObjectResult,返回状态为200
注:用OkObjectResult 前台jquery自动解析为object对象,不需要进行反序列化处理
2.ContentResult 返回字符串
3.JsonResult 返回Json对象,前台不需要反序列化处理
4.返回基础类型和引用类型 ,自动序列化,前台接收为object对象等
三 、根据HttpMethod路由示例
1.API定义
2.后台代码 :
View Code
四、根据HttpMethod的Template路由示例
1.API定义
2.后台代码:
3.Jquery 的ajax代码
更多参考:
Asp.Net Core WebAPI入门整理(一)
Asp.Net Core中Json序列化处理整理
.NetCore中EFCore的使用整理(二)-关联表查询
使用的是Newtonsoft.Json,自定义全局配置处理:
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { //使用IMvcBuilder 配置Json序列化处理 services.AddMvc() .AddJsonOptions(options => { options.SerializerSettings.ContractResolver = new DefaultContractResolver(); options.SerializerSettings.DateFormatString = "yyyy-MM-dd"; }); }
二、Core WebAPI中的路由处理使用方法注释的方式处理,
控制器路由:[Route("api/Menu")]
Action路由:1.根据HttpMethod路由 [HttpPut] 2.根据Template模板路由[HttpGet("{id}")]
Core WebAPI中返回数据处理,提供了更 多的选择:
1.OKResult,OkObjectResult,返回状态为200
注:用OkObjectResult 前台jquery自动解析为object对象,不需要进行反序列化处理
2.ContentResult 返回字符串
3.JsonResult 返回Json对象,前台不需要反序列化处理
4.返回基础类型和引用类型 ,自动序列化,前台接收为object对象等
三 、根据HttpMethod路由示例
1.API定义
/* * API 定义如下 * GET api/menu 获取菜单列表 * POST api/menu 添加模块 * PUT api/menu 修改模块 * PATCH api/menu 修改菜单信息 * DELETE api/menu 删除模块 */
2.后台代码 :
//Get获取列表数据 function testOne() { $.get(urlHelper.getApi('menu'), {}, function (data) { console.info(data); var menu1 = new Vue({ el: '#menu1', data: { result: data } }); }) } testOne(); //添加菜单 var example2 = new Vue({ el: '#example-2', data: { name:'添加菜单' }, //在 methods 对象中定义方法 methods: { addMenu: function (event) { //使用 Post提交添加菜单 var _this = this; this.name = '正在提交...'; $.post(urlHelper.getApi('menu'), { ModelName: '测试菜单5', SortNumber:5 }, function (data) { console.info(data); _this.name = '提交成功'; }); }, updateModel: function (event) { //使用put提交修改模块 var _this = this; $.ajax({ url: urlHelper.getApi('menu'), type: 'put', data: { ModelId: '4', ModelName: '模块abc', SortNumber: 4 }, success: function (data) { console.info(data); if (data == true) alert('修改成功'); else alert('修改失败'); } }); } } }); //修改菜单、删除模块 var btngroup1 = new Vue({ el: '#btngroup1', data: { name: '修改菜单', name1: '删除模块' }, methods: { updateMenu: function (e) { var _this = this; //使用patch 方式修改菜单 $.ajax({ url: urlHelper.getApi('menu'), type:'patch', data: { MenuID: 1, MenuName: '测试菜单One', SortNumber: 100, ModelID:2 }, success: function (data) { console.info(data); } }); }, deleteMenu: function (e) { //使用delete 提交方式删除模块 $.ajax({ url: urlHelper.getApi('menu'), type: 'delete', data: { ids:[1003] }, success: function (data) { console.info(data); }, error: function (data) { console.info(data); } }); } } });
View Code
四、根据HttpMethod的Template路由示例
1.API定义
/* * API 定义 * GET api/menu/{id} 获取指定ID的菜单对象 * GET api/menu/getmodel 获取模块列表内容 */
2.后台代码:
[HttpGet("{id}")] public IActionResult Get(int ID) { Menu m = _Context.Menu.Find(ID); if (m == null) return NotFound(); return Json(m); } //特别说明:路由中的Template的值不可以包含斜杠/ [HttpGet("getmodel")] public IActionResult GetModel() { List<Model> list = _Context.Model.ToList(); return Json(list); }
3.Jquery 的ajax代码
//其他Get方式测试 var btngroup2 = new Vue({ el: '#btngroup2', data: { name: '获取菜单对象', name1: '获取模块列表', item: {} //Vue的对象绑定,没有的情况下需要一个空对象,不然报错 }, methods: { getMenu: function (e) { var _this = this; //链接地址格式 :http://localhost:50000/api/menu/1/ $.get(urlHelper.getApi('menu','1'), { }, function (data) { console.info(data); _this.item = data; }); }, getModel: function (e) { var _this = this; $.get(urlHelper.getApi('menu', 'getmodel'), {}, function (data) { console.info(data); }) } } });
更多参考:
Asp.Net Core WebAPI入门整理(一)
Asp.Net Core中Json序列化处理整理
.NetCore中EFCore的使用整理(二)-关联表查询
相关文章推荐
- Asp.Net Core WebAPI入门整理(三)跨域处理
- asp.net core webapi项目配置全局路由的方法示例
- C#实现多级子目录Zip压缩解压实例 NET4.6下的UTC时间转换 [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了 asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程 asp.net core异步进行新增操作并且需要判断某些字段是否重复的三种解决方案 .NET Core开发日志
- ASP.NET Core Web API下事件驱动型架构的实现(一):一个简单的实现
- Ubuntu Server 16.04下ASP.NET Core Web Api + MySql + Dapper在 Jexus、nginx 下的简单测试
- ASP.NET Core Web API Cassandra CRUD 操作
- asp.net core webapi文件上传
- Global exception handling in asp.net core webapi
- 在Mac下创建ASP.NET Core Web API
- asp.net core web api token验证和RestSharp访问
- ASP.NET Core Web API下事件驱动型架构的实现(四):CQRS架构中聚合与聚合根的实现
- ASP.NET Core WebApi 返回统一格式参数(Json 中 Null 替换为空字符串)
- Docker容器环境下ASP.NET Core Web API
- 在ASP.NET Core Web API上使用Swagger提供API文档
- (转)通过ASP.NET Web API + JQuery创建一个简单的Web应用
- asp.net core webapi 似乎未安装在 IIS 中承载 .NET Core 项目所需的 AspNetCoreModule。请尝试修复 Visual Studio 以纠正该问题。
- IT咨询顾问:一次吐血的项目救火 java或判断优化小技巧 asp.net core Session的测试使用心得 【.NET架构】BIM软件架构02:Web管控平台后台架构 NetCore入门篇:(十一)NetCore项目读取配置文件appsettings.json 使用LINQ生成Where的SQL语句 js_jquery_创建cookie有效期问题_时区问题
- 用Middleware给ASP.NET Core Web API添加自己的授权验证
- docker中运行ASP.NET Core Web API
- Asp.net Core WebApi 使用Swagger做帮助文档,并且自定义Swagger的UI