最后,我发现了问题。
由于
var myFile =System.Web.HttpContext.Current.Request.Files["UploadedFiles"];某些原因,控制器中的代码永远无法正常工作。我的ajax没有错。我在控制器中将代码更改为波纹管,现在可以正常工作了。
[HttpPost] public virtual ActionResult UploadFile() { //var myFile = System.Web.HttpContext.Current.Request.Files["UploadedFiles"]; // bool isUploaded = false; string message = "File upload failed"; for (int i = 0; i < Request.Files.Count; i++ ) { var myFile = Request.Files[i]; if (myFile != null && myFile.ContentLength != 0) { string pathForSaving = Server.MapPath("~/Uploads"); if (this.CreateFolderIfNeeded(pathForSaving)) { try { myFile.SaveAs(Path.Combine(pathForSaving, myFile.FileName)); isUploaded = true; message = "File uploaded successfully!"; } catch (Exception ex) { message = string.Format("File upload failed: {0}", ex.Message); } } } } return Json(new { isUploaded = isUploaded, message = message }, "text/html"); } #endregion #region Private Methods /// <summary> /// Creates the folder if needed. /// </summary> /// <param name="path">The path.</param> /// <returns></returns> private bool CreateFolderIfNeeded(string path) { bool result = true; if (!Directory.Exists(path)) { try { Directory.CreateDirectory(path); } catch (Exception) { result = false; } } return result; } #endregion}


