我在asp.net MVC项目中使用文件上传功能。 在我开始在我的页面上使用一些AJAX功能之前,它工作得很好。
HttpPostedFile在Ajax页面上始终为NULL。
如何在我的页面上调用ajax来解决这个问题?
答案 0 :(得分:5)
由于您无法使用AJAX上传文件,我建议您使用优秀的jquery form plugin,以便您对表单进行调整并支持file uploads。在幕后,该插件会生成一个隐藏的iframe来处理上传,对您来说完全透明:
<form id="myForm" action="/home/upload" method="post" enctype="multipart/form-data">
<input type="file" name="file" id="file" />
<input type="submit" value="upload" />
</form>
控制器:
[HttpPost]
public ActionResult Upload(HttpPostedFileBase file)
{
// TODO: handle the file here
return PartialView("success");
}
最后ajaxify形式:
$(function() {
$('#myForm').ajaxForm(function(result) {
alert('thank you for uploading');
});
});
另请注意控制器操作中HttpPostedFileBase
而非HttpPostedFile
的使用情况。作为一个抽象类,这将简化您的单元测试。
答案 1 :(得分:0)
使用ajax发布文件上传是不可能的,除非你跳过一些箍 - 比如从IFrame中发布一个sub,或者使用一个基于Flash的解决方案。见https://stackoverflow.com/questions/254831/asp-net-free-ajax-file-upload-control
答案 2 :(得分:0)
XHR无法发帖。
Asnc文件上传使用iframe或某些库。