我已经在 mvc3 中正常提交了一个文件。现在我需要对 Ajax 做同样的事情。所以我使用了这个 jquery 插件:http: //jquery.malsup.com/form/#ajaxSubmit
查看代码:
$(document).ready(function () {
var options = {
url: "/Home/TakeFile",
dataType: "json",
success: showResponse
};
$("#File").submit(function () {
alert("submit");
$(this).ajaxSubmit(options);
return false;
});
});
function showResponse(responseText, statusText, xhr, $form) {
alert("showResponse");
alert(responseText.fileName);
}
</script>
@using (Html.BeginForm("TakeFile", "Home", FormMethod.Post, new { @id = "File", enctype = "multipart/form-data" }))
{
<input type="file" id="file" />
<input type="submit" value="Click to submit" id="button" />
}
控制器代码:
[HttpPost]
public ActionResult TakeFile(HttpPostedFileBase file)
{
return Json(new { fileName=file.FileName});
}
我的“TakeFile”方法中的文件参数始终为空。似乎无法使其正常工作。另外,我们可以使用“Ajax.BeginForm()”帮助器吗?