В настоящее время у меня есть форма, в которой есть смесь обычного текстового ввода и ввода файла (загрузки).
Итак, моя viewModel примерно так структурирована:
public string PROD
public string WH
public HttpPostedFileBase ImageFile
public HttpPostedFileBase ImageFile
Мой вид построен следующим образом:
@model ISE.Solution2.ViewModel.INV_Master
@using (Html.BeginForm(null, null, FormMethod.Post, new { id = "product-master-form", enctype = "multipart/form-data" }))
{
@Html.LabelFor(model => model.PROD, htmlAttributes: new { @class = "control-label col-sm-3 col-form-label" })
<div class="col-sm-9">
@Html.DropDownListFor(model => model.PROD, Enumerable.Empty<SelectListItem>(), new { @id = "product-code", @class = "form-control" })
</div>
<!--more markup written here -->
}
Прежде чем я отправлю форму, мойстраница выглядит следующим образом: 
Таким образом, форма первоначально вызывается public ActionResult MasterCl(int? id){}
в контроллере.Когда форма отправлена, она в настоящее время переходит к другому методу в контроллере:
[HttpPost]
public async Task<ActionResult> MasterCl(INV_Master masterViewModel){}
Таким образом, описанный выше метод просто return View()
Что означает, что я возвращаюсь на свою страницу, где формаи, вероятно, все заполненные поля в поле остаются нетронутыми.Но моя страница выглядит следующим образом:

Моя запись правильно сохраняется в базе данных, но раскрывающиеся поля теряют свое состояние, потому что они созданы на JavaScript.Они не являются обычными элементами HTML <select>
.
Я хочу предотвратить это.Потому что после того, как данные формы отправлены POST на серверную часть, может быть выполнена проверка на стороне сервера, и в форме могут быть ошибки, которые я хочу запросить для какого-то уведомления.Я предполагал, что пользователь вернется к заполненной форме, и я показываю javascript alert
, указывающий, какая часть формы заполнена не соответствующим образом.
Я заблудился в этой части.Я думал, смогу ли я вместо этого использовать Ajax.BeginForm
для отправки данных на контроллер.Если я это сделаю, то я все равно останусь на странице, и ответ POST будет определен с помощью поставленной строки JSON, и, таким образом, я смогу использовать js для отображения оповещения для этого содержимого.Проблема в том, что я не уверен, могу ли я использовать AJAX.Begin, если я также использую загрузку файлов.
некоторые страницы заставили меня подумать, что можно использовать ajax для POST-данных ... link1 link2