Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何将Json数组绑定到IList<;t>;当它设置在复杂类型的深处时?_Jquery_Json_Asp.net Mvc 4 - Fatal编程技术网

Jquery 如何将Json数组绑定到IList<;t>;当它设置在复杂类型的深处时?

Jquery 如何将Json数组绑定到IList<;t>;当它设置在复杂类型的深处时?,jquery,json,asp.net-mvc-4,Jquery,Json,Asp.net Mvc 4,我想将Json“ItemList”(这是一个列表)绑定到位于AddQuoteRequestVM模型深处的Ilist ItemList。层次结构为AddquoteRequestVM->ParcelVM->Ilist 控制器 public QuoteController() { [HttpPost] public ActionResult Add(AddQuoteRequestVM model) { } } 视图模型 public class AddQuote

我想将Json“ItemList”(这是一个列表)绑定到位于AddQuoteRequestVM模型深处的Ilist ItemList。层次结构为AddquoteRequestVM->ParcelVM->Ilist

控制器

 public QuoteController()
 {
    [HttpPost]
    public ActionResult Add(AddQuoteRequestVM model)
    {
    }
 }
视图模型

public class AddQuoteRequestVM
{
    public int QuoteId { get; set; }
    public DestinationVM PickUpAddress { get; set; }
    public ParcelVM ItemDescription { get; set; }
}

ParcelVM
 public class ParcelVM
 {
    [Required]
    public IList<Item> ItemList { get; set; }
 }

  Item 
    public class Item
   {
    [RegularExpression(@"^[0-9]+$")]
    public int? Width { get; set; }

    [RegularExpression(@"^\d+$")]
    public int? Height { get; set; }

    [RegularExpression(@"^\d+$")]
    public int? Length { get; set; }

    [RegularExpression(@"^\d*\.?\d{1,2}$")]
    [VolumneExist("Volume")]
    public decimal? Weight { get; set; }

    [Required]
    [RegularExpression(@"^[0-9]+$")]
    public int? Quantity { get; set; }

    [RegularExpression(@"^\d*\.?\d{1,3}$")]
    public decimal? Volume { get; set; }

    [Required]
    [StringLength(60)]
    public string FreeText { get; set; }

    public byte SelectedPackageType { get; set; }
}
我想在一个调用中同时传递表单数据和Javascript ItemList数组。此时ItemList返回null。如果我重构代码只发送表单数据,我不会有任何问题。就在我尝试发送表单数据和json数组时

任何想法和解释


谢谢

应该是
var data={'itemsdescription.ItemList':ItemList}?我刚刚尝试了您的建议,但IList ItemList仍返回空值。是否检查了请求表单集合键。您应该获得类似于
itemsdescription.ItemList[0].someProperty
itemsdescription.ItemList[1].someProperty
的内容,其中
someProperty
Item
类的属性(您没有发布
Item
,因此不确定属性名称)否。没有显示ItemDescriptionvar itemList=ko.toJSON(viewModel.itemList())的任何内容;返回json数组。
 var form = $("#createQuoteForm").serialize();
    var itemList = ko.toJSON(viewModel.ItemList());
    var data = { 'ItemDescription.ItemList' : itemList };
        $.ajax({
            url: "Add",
            type: "POST",
            data: JSON.stringify(form, data);
        });

    });