关于webapi post 使用多个参数的间接用法
问题描述:
Web Api 当使用Post提交的时候 由于只能接受一个参数 ,所以我们基本都会选择把所需要的参数,进行封装实体。
有的时候所需要的信息在其他两个实体中,还需要重新封装也不爽。
今天发现使用JObject 作为参数类型,可以避免自己创建实体。
引用:using Newtonsoft.Json.Linq;命名空间
public ResponseParam TestSend4(JObject jObject) { dynamic json = jObject; var jo = json.OrderInfo; var ju = json.UserInfo; var order = jo.ToObject<OrderInfo>(); var user = ju.ToObject<UserInfo>(); return new ResponseParam() { Code = 200,Msg = ""}; }
public class OrderInfo { public string No { get; set; } public decimal Price { get; set; } public int BuyCount { get; set; } } public class UserInfo { public string Account { get; set; } public string LoginTime { get; set; } }
前台调用时,需要使用Json格式的数据提交,代码如下:
var ajaxType = $("#ajaxType").val(); var ajaxUrl = $("#ajaxUrl").val(); var ajaxData = $("#ajaxData").val(); //var jsonObj = $.parseJSON(ajaxData); var Order = { No: "D20160411", Price: 25.6, BuyCount: 10 }; var User = {Account:"zhanglijun",LoginTime:"19870709"}; $.ajax({ type: ajaxType, url: ajaxUrl, data: JSON.stringify({ OrderInfo: Order, UserInfo: User }), contentType: "application/json", success: function (data) { alert(data); $("#ajaxResult").val(JSON.stringify(data)) }, error: function (XMLHttpRequest, textStatus, errorThrown) { alert("异常了" + textStatus + errorThrown); } });
大概就这样子,如果有问题,欢迎留言!