Web API请求方式
Get
Get(传递参数)
没有参数的时候data: ""
方法名以Get开头,WebApi会自动默认这个请求就是get请求
前端代码
<script type="text/javascript"> $.ajax({ url: "/api/default/GetUserByID", type: "get", dataType:"json", data: { "id": "1" }, success: function (data) { alert(JSON.stringify(data)); } }); </script>
后台代码
public class DefaultController : ApiController { private List<User> _userList = new List<User> { new User {UserID = 1, UserName = "first", UserEmail = "first@qq.com"}, new User {UserID = 2, UserName = "second", UserEmail = "second@qq.com"}, new User {UserID = 3, UserName = "third", UserEmail = "third@qq.com"} }; [HttpGet] public User GetUserByID(int id) { var user = _userList.FirstOrDefault(x=>x.UserID == id); if(user == null) { throw new HttpResponseException(HttpStatusCode.NotFound); } return user; } } public class User { public int UserID { get; set; } public string UserName { get; set; } public string UserEmail { get; set; } }
Get(传递实体)
前端代码
<script type="text/javascript"> var user = { UserID: "1", UserName: "first", UserEmail: "first@qq.com" }; $.ajax({ url: "/api/default/GetUserByModel", type: "get", contentType: "application/json", dataType: "json", data: user, success: function (data) { alert(JSON.stringify(data)); } }); </script>
后台代码
[HttpGet] public IEnumerable<User> GetUserByModel(User user) { return _userList; }
FromUri方式
前端代码
<script type="text/javascript"> var user = { UserID: "1", UserName: "first", UserEmail: "first@qq.com" }; $.ajax({ url: "/api/default/GetUserByModelUri", type: "get", contentType: "application/json", dataType: "json", data: user, success: function (data) { alert(JSON.stringify(data)); } }); </script>
后台代码
[HttpGet] public IEnumerable<User> GetUserByModelUri([FromUri]User user) { return _userList; }
Get(序列化传递)
前端代码
<script type="text/javascript"> var user = { UserID: "1", UserName: "first", UserEmail: "first@qq.com" }; $.ajax({ url: "/api/default/GetUserByModelSerialize", type: "get", contentType: "application/json", dataType: "json", data: {userString: JSON.stringify(user) }, success: function (data) { alert(JSON.stringify(data)); } }); </script>
后台代码
[HttpGet] public User GetUserByModelUri(string userString) { var user = JsonConvert.DeserializeObject<User>(userString); return user; }
Post
post传递一个参数
前端代码
单个值传递,json数据不要key后台才能获取到
<script type="text/javascript"> $.ajax({ url: "/api/default/Register", type: "post", dataType: "json", data: {"":"1" }, // post 不能加参数 success: function (data) { alert(JSON.stringify(data)); } }); </script>
后台代码
[HttpPost] public User Register([FromBody]int id) { string param = HttpContext.Current.Request.Form["id"]; var user = _userList.FirstOrDefault(x=>x.UserID == id); return user; }
Post传递json,后台实体接收
前端代码
<script type="text/javascript"> var user = { UserID: "1", UserName: "first", UserEmail: "first@qq.com" }; $.ajax({ url: "/api/default/Register", type: "post", dataType: "json", data: user, // post 不能加参数 success: function (data) { alert(JSON.stringify(data)); } }); </script>
后台代码
[HttpPost] public User Register(User user) { return user; }
Post传递序列化实体
前端代码
<script type="text/javascript"> var user = { UserID: "1", UserName: "first", UserEmail: "first@qq.com" }; $.ajax({ url: "/api/default/Register", type: "post", dataType: "json", contentType: 'application/json', data: JSON.stringify(user), success: function (data) { alert(JSON.stringify(data)); } }); </script>
后台代码
[HttpPost] public User Register(User user) { return user; }
Post传递object参数
前端代码
<script type="text/javascript"> var user = { UserID: "1", UserName: "first", UserEmail: "first@qq.com" }; $.ajax({ url: "/api/default/RegisterObject", type: "post", dataType: "json", data: { "User": user, "Info": "信息" }, success: function (data) { alert(JSON.stringify(data)); } }); </script>
后台代码
[HttpPost] public string RegisterObject(JObject jData) { dynamic json = jData; JObject jUser = json.User; string info = json.Info; var user = jUser.ToObject<User>(); return string.Format("{0}_{1}_{2}_{3}", user.UserID, user.UserName, user.UserEmail, info); }
Put
put带一个参数
不能带key
前端代码
<script type="text/javascript"> var user = { UserID: "1", UserName: "first", UserEmail: "first@qq.com" }; $.ajax({ url: "/api/default/RegisterObject", type: "put", dataType: "json", data: { "":"1" }, success: function (data) { alert(JSON.stringify(data)); } }); </script>
后台代码
[HttpPut] public User RegisterObject([FromBody]int id) { var user = _userList.FirstOrDefault(users => users.UserID == id); return user; }
Put传递Json
前端代码
<script type="text/javascript"> var user = { UserID: "1", UserName: "first", UserEmail: "first@qq.com" }; $.ajax({ url: "/api/default/RegisterObject", type: "put", dataType: "json", data: user, success: function (data) { alert(JSON.stringify(data)); } }); </script>
后台代码
[HttpPut] public User RegisterObject(User user) { return user; }
Put传递序列化json
前端代码
<script type="text/javascript"> var user = { UserID: "1", UserName: "first", UserEmail: "first@qq.com" }; $.ajax({ url: "/api/default/RegisterObject", type: "put", dataType: "json", contentType: 'application/json', data: JSON.stringify(user), success: function (data) { alert(JSON.stringify(data)); } }); </script>
后台代码
[HttpPut] public User RegisterObject(User user) { return user; }
Put传递Object
前端代码
<script type="text/javascript"> var user = { UserID: "1", UserName: "first", UserEmail: "first@qq.com" }; $.ajax({ url: "/api/default/RegisterObject", type: "put", dataType: "json", data: { "User": user, "Info": "信息" }, success: function (data) { alert(JSON.stringify(data)); } }); </script>
后台代码
[HttpPut] public string RegisterObject(JObject jData) { dynamic json = jData; JObject jUser = json.User; string info = json.Info; var user = jUser.ToObject<User>(); return string.Format("{0}_{1}_{2}_{3}", user.UserID, user.UserName, user.UserEmail, info); }

浙公网安备 33010602011771号