Отправляйте сложные данные из формы. JS ==> ASP.NET MVC 5

#javascript #asp.net #asp.net-mvc #post #fetch-api

#javascript #asp.net #asp.net-mvc #Публикация #fetch-api

Вопрос:

У меня сложная форма со строками, файлами. И я добавляю в эту форму некоторый JSON / object.В контроллере я не могу обработать свой добавленный объект (продукт), вы можете увидеть его ниже.

Модели

Модель 1. MyData

     public string SomeThing { get; set; }
    public IEnumerable<Product> Products { get; set; }
    public IEnumerable<HttpPostedFileBase> Files { get; set; }
 

Модель 2. Продукт

     public int Id { get; set; }
    public int Count { get; set; }
 

Контроллер

     [System.Web.Http.HttpPost]
    public HttpStatusCodeResult GetData(MyData data) <== SomeThing-OK.Files-OK,Products-Products[0] 
    {
       //logic
    }
 

JS. Я использую Vue fetch API, но это не сделка.То же самое происходит, когда я использую jQuery.

     let form = new FormData(this.$refs.myForm);
    form.append('Products', [{ 'Id': 1, 'Count': 2 }])  <== In controller I always get Products[0] =(
    fetch('/GetData', {
            method: 'post',
            body: form
            })
          })
 

Я в полном замешательстве. Я не хочу отказываться от использования FormData(). Я могу легко обрабатывать файлы с его помощью. Но мой контроллер не видит никакого сложного (Products) объекта, если я не использую JSON (stringify). Буду благодарен за любые советы.

Комментарии:

1. Данные формы должны быть парами имя / значение.

2. @pcalkins Я это сделал. (имя: ‘Products’, значение: [{ ‘Id’: 1, ‘Count’: 2 }]