Przesyłanie plików z ajaxem w asp.net mvc

Wiem, że wiele razy o tym dyskutowano.

Zasadniczo chcę, aby w moim odczuciu można było zaktualizować plik. Ten plik musi zostać zmapowany do modelu, którego oczekuje kontroler:

public ActionResult Create(Company company)
{
    //Do something with the received model
}

Model:

public class Company
{
    public int Id { get; set; }
    public HttpPostedFileBase PictureUpload { get; set; }
    ...
}

To działa bez żadnych problemów. Teraz chciałbym wysłać moje dane formularza, w tym plik, za pośrednictwem AJAX. Dlatego używam tego w moim przekonaniu:

@using (Ajax.BeginForm("Create", "Company", null, new AjaxOptions { HttpMethod = "Post", OnSuccess = "ajaxOnSuccess", OnFailure = "alert('Error message.');" }, new { @class = "ym-form", enctype = "multipart/form-data" }))

W zasadzie działa, ale przesyłanie plików nie działa (o ile czytam ajax nie ma dostępu do pliku, więc nie można go wysłać).

Chciałbym, co jest najlepszym rozwiązaniem dla tego problemu, bez konieczności modyfikowania mojego zaplecza (kontrolera / modelu).

Np. Przeczytałem ten artykuł:http://ajeeshms.in/Blog/Article/1/upload-files-using-ajax-in-asp-mvc

Zapewnia dwie ładne możliwości, ale musiałbym zmodyfikować backend, ponieważ, o ile widzę, automatyczne mapowanie do typu HttpPostedFileBase w moim modelu nie byłoby już możliwe.

Nie mam nic przeciwko używaniu jakiejkolwiek działającej wtyczki dla mojego widoku lub przy użyciu techniki obsługiwanej tylko przez nowe przeglądarki.

questionAnswers(4)

yourAnswerToTheQuestion