我正在使用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[]
格式?
答案 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.
}