首页 .Net ajax 提交Dictionary<string, string>或 Dictionary<string, string>用法

ajax 提交Dictionary<string, string>或 Dictionary<string, string>用法

某些情况下我们希望后台接口接收到的数据为字典对象已方便使用,这时就要求前端传递必须传递相关的数据结构数据(如下图对象)

字典对象 其实就是 key与value的形式即 {key:value},最后在提交时将整个对象JSON.stringify 转成字符串

C# 后端接口接收

 [HttpPost, ValidateInput(false)]
 public JsonResult PostProduct([System.Web.Http.FromBody]AddProductModel input)
   {
   SiteLog.Track("productModel=" + JsonConvert.SerializeObject(input));
   }

前端组装传递

// 这里 suk = Dictionary<string, string[]>
 var suk = []
 for (var i = 0; i < sukNum; i++) {
   var key = $(`#cats${i}`).val();
   var values = [];
      $(`input[name='standard${i}']`).each(function (index, element) {
       values.push($(this).val());
    });
  suk.push({ Key: key, Value: values })
  }
this.form.Suk = suk;
 $.ajax({
                        url: "PostProduct",
                        data: JSON.stringify(this.form),
                        type: "post",
                        contentType: "application/json",
                        dataType:"json",
                        success: function (res) {
                            console.log(res, 444)
                        },
                        error: function (err) {
                            console.log(err, 323)
                        }
                    })
//priceSuk =Dictionary<string, Dictionary<string, double>>
                        var priceSuk = []
                        let nameKey = $("input[name='product_name']").val();
                        let priceSukValues = [];
                        for (var i = 0; i < priceSUK; i++) {
                            let key = $(`input[name='product_inch${i}']`).val();
                            let value = $(`input[name='product_price${i}']`).val()
                            priceSukValues.push({ Key: key, Value: value });
                        }
                        priceSuk.push({ Key: nameKey, Value: priceSukValues })
                        this.form.PriceSuk = priceSuk;

附录图片


特别声明:本站部分内容收集于互联网是出于更直观传递信息的目的。该内容版权归原作者所有,并不代表本站赞同其观点和对其真实性负责。如该内容涉及任何第三方合法权利,请及时与824310991@qq.com联系,我们会及时反馈并处理完毕。