Если я использую это в качестве моего действия контроллера ... FAIL.
[HttpPost]
public ActionResult Index(HttpPostedFileBase FileData)
{
var saveLocation = Path.Combine(Server.MapPath("\\"),"returns");
System.IO.Directory.CreateDirectory(saveLocation);
FileData.SaveAs(Path.Combine(saveLocation, FileData.FileName));
ViewBag.Message = String.Format("File name: {0}, {1}Kb Uploaded Successfully.", FileData.FileName, (int)FileData.ContentLength / 1024);
return View();
}
Когда я запускаю свое веб-приложение и пытаюсь загрузить файл, я получаю индикатор выполнения, который работает, получает случайный процент и возвращает общую ошибку.
Однако !!
Это действие контроллера прекрасно работает.
[HttpPost]
public String Upload(HttpPostedFileBase FileData)
{
var saveLocation = Path.Combine(Server.MapPath("\\"),"returns");
System.IO.Directory.CreateDirectory(saveLocation);
FileData.SaveAs(Path.Combine(saveLocation,FileData.FileName));
ViewBag.Message = String.Format("File name: {0}, {1}Kb Uploaded Successfully.", FileData.FileName, (int)FileData.ContentLength / 1024);
return ViewBag.Message;
}
Вот код с моей страницы загрузки. Все ссылки на скрипты загружаются в site.master.
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Home Page
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2><%: ViewBag.Message %></h2>
<%= this.Profile.TaxPayerID %>
<p>Please upload your return</p>
<script type="text/javascript">
$(document).ready(
function () {
$("#fileuploader").fileUpload({
'uploader': '/Scripts/uploader.swf',
'cancelImg': '/Images/cancel.png',
'buttonText': 'Select DR405',
'script': 'Home/Upload',
'folder': '/returns',
'fileDesc': 'Image Files',
'fileExt': '*.csv;*.txt;*.xls;*.xlsx',
'auto': true
});
}
);
</script>
<div id="fileuploader"></div>
</asp:Content>
Почему я не могу вернуть ActionResult?