【发布时间】:2019-06-13 10:38:39
【问题描述】:
我正在向 mvc 控制器发送 formdata 数据对象。我在控制器中收到了数组,但对象总是丢失。查了很多都没找到线索。
我尝试发送整个对象或将每个值附加到formdata,但它始终为空。 formdata 接受吗?嵌套对象。
我的 jQuery 代码:
function addstudent() {
var form= $("#studentform").valid();
if (form)
{
personfood.details.firstname = $("#firstname").val();
personfood.details.lastname = $("#lastname").val();
personfood.details.imageuploaded = $("#imageupload")[0].files[0];
personfood.details.rememberme = $("#rememberme").is(":checked");
personfood.details.newsletter = $("#newsletter").is(":checked");
personfood.details.gender = $("input[name='gender']").val();
var personfoods = new FormData();
$.each(personfood.details, function (key, value) {
personfoods.append(key, value);
});
$.each(personfood.foodname, function (key, value) {
personfoods.append("foodname["+[key]+"]", value);
});
for (var pair of personfoods.entries()) {
console.log(pair[0] + ', ' + pair[1]);
}
$.ajax({
url: "/Main/addperson",
type: "POST",
processData: false,
cache: false,
contentType: false,
dataType: "json",
data: personfoods,
success: onsucessinsert,
error:onerrorinsert
})
}
我的视图模型
public class personfoods
{
public details details { get; set; }
public List<string> foodname { get; set; }
}
details模特:
public class details
{
public int id { get; set; }
public string firstname { get; set; }
public string lastname { get; set; }
public string imagename { get; set; }
public string imageshorturl { get; set; }
public string imagefullurl { get; set; }
public bool rememberme {get;set;}
public bool newsletter { get; set; }
public string gender { get; set;}
public HttpPostedFileBase imageuploaded { get; set; }
}
【问题讨论】:
-
你试过
data:JSON.stringify(personfoods);吗? -
是的,尝试过 data:JSON.stringify(personfoods);和数据:JSON.stringify(personfoods.details);
-
你能分享你的屏幕吗?
-
@TanvirArjel 我正在控制器中检查它,我可以看到一个 foodname 数组,但 details 对象始终为空?似乎我无法附加对象 formdata?
-
耶!你在这里遗漏了一些东西!需要调试。
标签: c# jquery asp.net-mvc model-binding