关于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);
            }

        });

大概就这样子,如果有问题,欢迎留言!

原文地址:https://www.cnblogs.com/searchbaidu/p/5378514.html