无法上传使用Ajax.BeginForm文件()异步 [英] not able to upload file using Ajax.BeginForm() asynchronously

查看:233
本文介绍了无法上传使用Ajax.BeginForm文件()异步的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图用上传Ajax.BeginForm()的文件,但它不工作了。

I'm trying to upload a file using Ajax.BeginForm() but it's not working out.

我的视图包含:

@using (Ajax.BeginForm("UploadFile", null, new AjaxOptions { HttpMethod="POST",     UpdateTargetId = "result" }, new { enctype = "multipart/form-data" }))
{         
   <label id="lblUploadNewFile" for="fileUploadControl">Upload New File&lt;/label>     
   <input type="file" name="fileToUpload" id="fileUploadControl"/>
   <input id="btnFileUpload" type="submit" value="Upload" />
   <span id="result" />            
}

和相应的控制器是:

[HttpPost]
public string UploadFile(FormCollection formData)
{
   HttpPostedFileBase file=null;

   try
   {
      file = Request.Files[0];
   }
   catch { }

   if ( file!=null &amp;&amp; file.ContentLength &gt; 0)
   {
      file.SaveAs(string.Concat(
            AppDomain.CurrentDomain.BaseDirectory, 
            Path.GetFileName(file.FileName)));

      return &quot;Successfully Uploaded&quot;;
   }
   else
   {
      return &quot;Upload Failed, please try again.&quot;;
   }
}

现在的问题是,它的上传文件,但不再做任何异步帖的时候我删除 jquery.unobtrusive-ajax.js 。相反,它做了充分后回。

The problem is that it's uploading the file but no longer doing any asynchronous posts when I remove jquery.unobtrusive-ajax.js. Instead, it does a full post-back.

当我加入 jquery.unobtrusive-ajax.js 在我看来,它做异步但在表单数据不发送上传文件。没有文件被发送到服务器 Request.Files []

When I add jquery.unobtrusive-ajax.js in my view, it's doing asynchronous but not sending upload file in form data. No file is being sent to the server in Request.Files[].

推荐答案

您无法上传使用AJAX的文件。这是不支持的。如果你想这样做,你既可以使用一些文件上传插件,如 Uploadify Blueimp文件上传或使用的 HTML 5文件API 如果客户端浏览器支持它。

You cannot upload files using AJAX. This is not supported. If you want to do that you could either use some file upload plugin such as Uploadify or Blueimp File Upload or use the HTML 5 File API if the client browser supports it.

这篇关于无法上传使用Ajax.BeginForm文件()异步的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆