I'm trying to upload a file using Ajax.BeginForm(), but it's not working out.
My view contains:
@using (Ajax.BeginForm("UploadFile", null, new AjaxOptions { HttpMethod="POST",     UpdateTargetId = "result" }, new { enctype = "multipart/form-data" }))
{
   <label id="lblUploadNewFile" for="fileUploadControl">Upload New File</label>
   <input type="file" name="fileToUpload" id="fileUploadControl"/>
   <input id="btnFileUpload" type="submit" value="Upload" />
   <span id="result" />
}
and the corresponding Controller is:
[HttpPost]
public string UploadFile(FormCollection formData)
{
   HttpPostedFileBase file=null;
   try
   {
      file = Request.Files[0];
   }
   catch { }
   if ( file!=null && file.ContentLength > 0)
   {
      file.SaveAs(string.Concat(
            AppDomain.CurrentDomain.BaseDirectory,
            Path.GetFileName(file.FileName)));
      return "Successfully Uploaded";
   }
   else
   {
      return "Upload Failed, please try again.";
   }
}
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.
When I add jquery.unobtrusive-ajax.js in my view, it's doing it asynchronously, but it is not sending an upload file in the form data. No file is being sent to the server in Request.Files[].