2013-06-06 2 views
3

Я использую плагин jQuery.Form для отправки массива в приложение ASP.NET MVC (4).Отправить массив для ASP.NET MVC applictaion с помощью jQuery.Form

Скажем, у меня есть массив:

var items = [ 1, 2, 3 ]; 

Добавляет, что массив, используя jQuery.Form плагин этого массива будет посланы как:

items[]: 1 
items[]: 2 
items[]: 3 

(при использовании форм-URL-закодирован типа контента)

Но ASP.NET MVC не понимает этого, чтобы MVC понять, что мне нужно отправить либо:

items[0]: 1 
items[1]: 2 
items[2]: 3 

(включая индекс)

или

items: 1 
items: 2 
items: 3 

(без квадратных скобок)

Я не могу представить, как JSON, потому что наряду с массивом и другими данными, я также передавать файлы.

Вопрос: есть ли способ, чтобы либо настроить jQuery.Form для отправки массивов в другом формате, или научить ASP.NET MVC, чтобы понять формат item[]?

+0

жаль - не видел, что вы есть jquery плагин –

ответ

0

Если тип кодирования multipart/form-data является возможностью, тогда его можно отправить в виде JSON в тандеме с размещенными файлами, используя Javascript FormData.

var formData = new FormData(); 

var json = "json" // Assuming you can wrap this up as a JSON, 
        // and you're using a <input type="file">. 

formData.append("FileData", $("input:file")[0].files[0]; 
formData.append("JsonData", json); //etc. 

$.ajax({ 
    url: 'UnwrapData', 
    data: formData, 
    type: "POST", //etc. 

Тогда вы могли бы послать все это к контроллеру, который выглядит примерно так, где JSON анализируется и данные файлов могут быть распакованы:

public ActionResult UnwrapData(HttpPostedFileBase FileData, string JsonData) 
{ 
    // where the JSON data is unwrapped, etc. 
}