使用jQuery.Form将数组提交到ASP.NET MVC应用程序

时间:2013-06-06 20:34:13

标签: asp.net-mvc jqueryform

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

假设我有一个数组:

var items = [ 1, 2, 3 ];

使用jQuery.Form插件提交该数组,该数组将发送为:

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

(使用form-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[]格式?

1 个答案:

答案 0 :(得分:0)

如果可能使用multipart/form-data编码类型,那么应该可以使用Javascript FormData将其作为JSON与发布的文件一起提交。

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