在asp.net mvc

时间:2016-01-20 11:30:04

标签: jquery json ajax asp.net-mvc

我正在尝试使用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);
        }

1 个答案:

答案 0 :(得分:0)

我修复了问题...我不知道为什么但是Asp.Mvc获取json数据并且无理由地将一个空元素添加到json数组外部。我使用request.form来获取json并且我通过以下方式消除了这些附加数据使用substring.Now它可以工作。