【发布时间】:2015-07-31 16:21:07
【问题描述】:
我有一个这样的 HTML Razor 视图:
@using (Html.BeginForm("Insert", "Operation", FormMethod.Post, new { @class = "form-horizontal", enctype = "multipart/form-data", id = "image_form" }))
{
<div>
<span class="btn btn-default ">
<span class="fileinput-new">Up Your Image</span>
<input type="file" name="nationalCard" id="nationalCard">
</span>
</div>
<input type="button" class="btn btn-default" id="submit_image" onclick="insert()" value="ثبت" />
}
我的 Jquery Ajax 代码是:
function insert() {
var formData = $("#image_form");
$.ajax({
type: "POST",
url: '@Url.Action("Insert", "Operation")',
data: formData.serialize(),
dataType: "json",
success: function (data) {
//do something...
},
});
};
所以我想基于 Request 对象和 Files 属性在动作控制器中接收图像,如下所示:
[HttpPost]
public ActionResult Insert()
{
if (Request.Files.Count > 0)
{
var image = Request.Files["nationalCard"];
//do something...
}
}
我已经尝试过了,但实际上没有收到文件。知道谁能帮我做吗?
【问题讨论】:
-
您已将
multipart/form-data添加到您的BeginForm,但您正在使用ajax 处理该帖子,因此您需要将enctype: 'multipart/form-data'添加到您的ajax 调用中。查看这些答案以获得更多帮助stackoverflow.com/questions/2320069/… 我会查看一些更新的答案,而不仅仅是公认的答案 -
谢谢,但我已经概述了链接并尝试了这个:'enctype: 'multipart/form-data' 但仍然无法正常工作。
标签: jquery ajax asp.net-mvc razor httprequest