Я знаю, что это обсуждалось много раз.Загрузка файла с помощью ajax в asp.net mvc
В основном я хочу, чтобы на мой взгляд, чтобы обновить файл. Этот файл должен быть отображен в модели контроллер ожидает:
public ActionResult Create(Company company)
{
//Do something with the received model
}
модели:
public class Company
{
public int Id { get; set; }
public HttpPostedFileBase PictureUpload { get; set; }
...
}
Это работает без каких-либо проблем. Теперь я хочу отправить свои данные формы, включая файл, через AJAX. Поэтому я использую это на мой взгляд:
@using (Ajax.BeginForm("Create", "Company", null, new AjaxOptions { HttpMethod = "Post", OnSuccess = "ajaxOnSuccess", OnFailure = "alert('Error message.');" }, new { @class = "ym-form", enctype = "multipart/form-data" }))
В основном это работает, но загрузка файла не работает (насколько я читал Аякса не имеет доступа к файлу, поэтому он не может быть отправлен).
Я бы хотел, чтобы это лучшее решение для этой проблемы, без необходимости изменять мой backend (контроллер/модель).
E. g. Я прочитал эту статью: http://ajeeshms.in/Blog/Article/1/upload-files-using-ajax-in-asp-mvc
Это обеспечивает два хороших возможностей, но я должен был бы изменить бэкенд, потому что, насколько я вижу, автоматически картографирования к типу HttpPostedFileBase в моей модели не было бы возможно больше.
Я не против использования какого-либо рабочего плагина для моего представления или с использованием техники, поддерживаемой только новыми браузерами.
Вы можете использовать Ajax с html5 файла апи. [См. Это сообщение] (http://timothypoon.com/blog/2011/05/10/ajax-uploading-with-html5s-file-api/) – karaxuna
Взгляните на мой принятый ответ: http: // stackoverflow. com/questions/18440220/how-to-upload-file-in-strong-type-view-in-asp-net-mvc/18441187 # 18441187 –