webApi——传参详解
来源:互联网 发布:360云盘 linux客户端 编辑:程序博客网 时间:2024/06/05 08:44
前台html 效果
html
<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> <script src="../Scripts/jquery-1.10.2.min.js"></script> <script type="text/javascript"> $(function () { //普通get $("#SimpleGet").click(function () { $.ajax({ type: "get", url: "/api/Test/SimpleGet", data: { id: 1, name: "tangli", bir: "1988-09-11" }, success: function (data, status) { } }); }); //get传递对象 $("#GetSendModel").click(function () { var postdata = { ID: "2", Name: "Jim", CreateTime: "1988-09-11" }; $.ajax({ type: "get", url: "/api/Test/GetSendModel", data: postdata, success: function (data, status) { } }); }); //如果你不想使用[FromUri]这些在参数里面加特性的这种“怪异”写法,也可以采用先序列化,再在后台反序列的方式 $("#GetSendModel2").click(function () { $.ajax({ type: "get", url: "/api/Test/GetSendModel", contentType: "application/json", data: { strQuery: JSON.stringify({ ID: "3", Name: "zd", CreateTime: "1988-09-11" }) }, success: function (data, status) { } }); }); $("#PostOneData").click(function () { $.ajax({ type: "post", url: "/api/Test/PostOneData", data: { "": "Jim"}, success: function (data, status) { } }); }); $("#PostManyData").click(function () { var str = JSON.stringify({ Name: "jiaguanyao", Des: "备注", CreateTime: "1988-09-11" }); $.ajax({ type: "post", url: "/api/Test/PostManyData", data: { "": str }, success: function (data, status) { } }); }); $("#PostManyData2").click(function () { $.ajax({ type: "post", url: "/api/Test/PostManyData2", data: { "name": "maozhedong", "des": "weida" }, success: function (data, status) { } }); }); //有一点需要注意的是这里在ajax的请求里面需要加上参数类型为Json,即 contentType: 'application/json', 这个属性。 $("#PostModel").click(function () { $.ajax({ type: "post", url: "/api/Test/PostModel", contentType: 'application/json', data: JSON.stringify({ Name: "jianbin", Des: "备注", CreateTime: "1988-09-11" }), success: function (data, status) { } }); }); }); </script></head><body> <h1>Get</h1> <input type="button" id="SimpleGet" value="简单Get" /> <input type="button" id="GetSendModel" value="Get方式传对象" /> <input type="button" id="GetSendModel2" value="Get方式传对象(先序列化)" /> <h1>Post</h1> <input type="button" id="PostOneData" value="Post一个数据" /> <input type="button" id="PostManyData" value="Post多个数据【不推荐】" /> <input type="button" id="PostManyData2" value="Post多个数据(后台方法2)" /> <input type="button" id="PostModel" value="Post对象" /></body></html>
WebApiConfig
using System;using System.Collections.Generic;using System.Linq;using System.Web.Http;namespace Hzb.File{ public static class WebApiConfig { public static void Register(HttpConfiguration config) { // Web API 配置和服务 // Web API 路由 config.MapHttpAttributeRoutes(); //找到了与该请求匹配的多个操作: 类型 Hzb.File.Controllers.TestController 的 SaveData 类型 Hzb.File.Controllers.TestController 的 PostModel //注意 要加在默认路由的上面 config.Routes.MapHttpRoute( name: "DefaultApinew", routeTemplate: "api/{controller}/{action}/{id}", defaults: new { id = RouteParameter.Optional } ); config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } ); } }}
控制器
using Newtonsoft.Json;using System;using System.Collections.Generic;using System.Linq;using System.Net;using System.Net.Http;using System.Web;using System.Web.Http;namespace Hzb.File.Controllers{ public class TestController : ApiController { [HttpGet] public string SimpleGet(int id, string name, DateTime bir) { return "id:" + id + " name:" + name + " time:" + bir.ToString(); } [HttpGet] public string GetSendModel([FromUri] Person per) { return "id:" + per.ID + " name:" + per.Name + " time:" + per.CreateTime.ToString(); } [HttpGet] public string GetSendModel(string strQuery) { Person per = JsonConvert.DeserializeObject<Person>(strQuery); return "id:" + per.ID + " name:" + per.Name + " time:" + per.CreateTime.ToString(); } [HttpPost] public string PostOneData([FromBody]string param) { return param; } [HttpPost] public string PostManyData([FromBody]string call) { return call; } [HttpPost] public string PostManyData2() { string name = HttpContext.Current.Request.Form["name"]; string des = HttpContext.Current.Request.Form["des"]; return name + " " + des; } [HttpPost] public string PostModel(dynamic per) { return "id:" + per.ID + " name:" + per.Name + " time:" + per.CreateTime.ToString(); } } public class Person { /// <summary> /// 主键Id /// </summary> public string ID { get; set; } /// <summary> /// 充电设备名称 /// </summary> public string Name { get; set; } /// <summary> /// 充电设备描述 /// </summary> public string Des { get; set; } /// <summary> /// 创建时间 /// </summary> public DateTime CreateTime { get; set; } } }
1 0
- webApi——传参详解
- C#进阶系列——WebApi 接口参数不再困惑:传参详解
- C#进阶系列——WebApi 接口参数不再困惑:传参详解
- (转载)C#进阶系列——WebApi 接口参数不再困惑:传参详解
- C#进阶系列——WebApi 接口参数不再困惑:传参详解
- WebApi 接口参数传参详解
- WebApi接口传参不再困惑:传参详解
- WebApi接口传参不再困惑:传参详解
- WebApi接口传参不再困惑:传参详解
- WebApi 接口参数:传参详解 和动态类dynamic
- WebApi 接口参数不再困惑:传参详解
- WebApi 接口参数不再困惑:传参详解
- 【WebApi】————.net WebApi开发(一)
- 【WebApi】————.net WebApi开发(二)
- 【WebApi】————.net WebApi开发(三)
- webApi——启用 session
- webApi——启用 session
- C#中WebApi接口传参不再困惑:传参详解
- 华为OJ 初级:输出单向链表中倒数第k个结点
- HDOJ 5763 (2016多校联合训练 Training Contest 4) Another Meaning
- keil c 常见错误和警告
- 阿里云centOs下搭建Web应用步骤
- java设计模式_享元模式
- webApi——传参详解
- x86分页机制——《x86汇编语言:从实模式到保护模式》读书笔记42
- java基础目录
- 第三章:linear models for regression exericse 1-7
- 数组的四种排序方式
- Composer:Failed to execute git clone --mirror ...Permission denied (publickey). fatal: Could not
- Codeforces Round #105 (Div. 2) C 构造
- HDU 4691 Front Compression [后缀数组] [LCP]
- PyGobject(五十)布局容器之ListBox