我正在尝试使用ajax发送json数据和图像文件的数组,但我只能获取图像文件而不能获取json数据,我可以在fiddler中看到正确发送的json数据。在action方法中,json数据的collection参数说数= 0。我如何获得json数据数组?
@using (Ajax.BeginForm("GetData", "Home", new AjaxOptions
{
InsertionMode = InsertionMode.Replace
}, new { @id = "form_", enctype = "multipart/form-data" }))
{
@Html.TextBox("imagefile", null, new { @type="file"})
@Html.Hidden("formdata", null, new { @data_formdatajson = "" }))
@Html.TextBox("submit", null, new { @id = "button", @value = "upload", @type = "submit"})
}
var DataClass = {
data1: data1value,
data2: data2value
}
dataArray=[];
dataArray.push(DataClass);
dataArrayJson = JSON.stringify(dataArray);
$('#formdata’).data("formdatajson ", dataArrayJson);
$('#form_').on('submit', function (e) {
var dataArray_ = $('#formdata ').data("formdatajson");
var formdata = new FormData($(this)[0]);
formdata.append('formdata', dataArray_);
$.ajax({
url: '/GetData/Home/',
type: 'POST',
data: formdata,
processData: false,
contentType: false,
dataType: "json",
success: function (data) {
},
error: function () { },
});
});
public class DataClass
{
public string data1 { get; set; }
public string data2 { get; set; }
}
[HttpPost]
public JsonResult GetData(IEnumerable<DataClass> formdata, HttpPostedFileBase imagefile)
{
return Json(new { success = true }, JsonRequestBehavior.AllowGet);
}
答案 0 :(得分:0)
我修复了问题...我不知道为什么但是Asp.Mvc获取json数据并且无理由地将一个空元素添加到json数组外部。我使用request.form来获取json并且我通过以下方式消除了这些附加数据使用substring.Now它可以工作。