向ASP提交一个数组.. NET MVC应用程序使用jQuery.Form



我正在使用jQuery。表单插件提交一个数组到ASP。. NET MVC(4)应用程序。

假设我有一个数组:

var items = [ 1, 2, 3 ];

使用jQuery提交数组。表单插件,数组将发送为:

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。表单以不同的格式发送数组,或者教导ASP。. NET MVC理解item[]格式?

如果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.
}

最新更新