我有一个带有3个输入(文本,图像,提交按钮)的表单。MVC上传并保存带有Ajax的表单图像
@using (Html.BeginForm("Save", "User", FormMethod.Post, new {Id="Form1", enctype = "multipart/form-data"}))
{
<input id="FileUploadInput" name="Image" type="file"/>
<input id="FirstName" Name="FirstName">
<input type="submit" id="inputSubmit" value="Save" />
}
现在我想从JavaScript和AJAX
$("#inputSubmit").click(function (e) {
e.preventDefault();
var form = $("#Form1");
form.validate();
if (form.valid()) {
$.ajax({
url: "/User/Save",
data: form.serialize(),
type: "POST",
success: function (data) {
if (data === "") {
location.reload();
}
else {
$(".content").html(data);
$.validator.unobtrusive.parse($(".content"));
}
}
});
}
return false;
});
提交此表在我的控制文件,我有。
public ActionResult Save(UserProfileSettings settings)
{
var image = setings.Image
var name = settings.Firstname
}
我的模型
public class UserProfileSettings
{
public string FirstName { get; set; }
public HttpPostedFileBase Image { get; set; }
}
的问题是,在我的控制器方法我得到settins.FirstName,但settings.Image始终为空。我认为,用这种方法不可能序列化图像文件。
你或许可以从下面的例子中受益这里显示控制器:http://powerdotnetcore.com/ ASP净MVC/ASP净MVC-简单的Ajax文件上传,using- jquery –