Привязка HttpPostedFileBase с помощью Ajax. BeginForm

У меня есть форма, которая связывает модель и загрузку файла с помощью редактора связей по умолчанию для HttpPostedFileBase.

Это хорошо работает при использовании HTML. BeginForm (). Однако я хотел выполнить то же действие с помощью Ajax, таким образом, я заменил это Ajax. BeginForm () изменение параметров соответственно.

Модель все еще связывает правильно, однако я не могу заставить загрузку файла связывать с HttpPostedFileBase.

Это связывает модель и загрузку файла:

<% using (Html.BeginForm("MapUpdateColumns", "RepositoryAdmin", FormMethod.Post, new { id = "UpdateDataset", enctype = "multipart/form-data" })) {%>

Это только связывает модель:

<% using (Ajax.BeginForm("MapUpdateColumns", "RepositoryAdmin", new AjaxOptions { UpdateTargetId = "columnMappings" }, new { id = "UpdateDataset", enctype = "multipart/form-data" })) {%>

Действие контроллера:

public ActionResult MapUpdateColumns(DatasetViewModel model, HttpPostedFileBase sourceFile)

Это должно быть возможно, и раз так что я делаю неправильно?Спасибо.

6
задан TonE 22 March 2010 в 10:00
поделиться

1 ответ

Вы не можете загружать файлы с помощью AJAX. Один из способов добиться этого - использовать скрытый iframe, который будет имитировать вызов AJAX и выполнять фактическую загрузку файла или использовать Flash. Вот очень хороший плагин jQuery Form , использующий скрытый iframe, который способен прозрачно ajaxification при отправке формы, содержащей поля файла.

9
ответ дан 10 December 2019 в 00:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: