Как мне остаться на странице и вернуть только строковый ответ после отправки формы? я могу использовать отправку формы AJAX с файлами? - PullRequest
0 голосов
/ 12 сентября 2018

В настоящее время у меня есть форма, в которой есть смесь обычного текстового ввода и ввода файла (загрузки).

Итак, моя 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 -->

}

Прежде чем я отправлю форму, мойстраница выглядит следующим образом: enter image description here

Таким образом, форма первоначально вызывается public ActionResult MasterCl(int? id){} в контроллере.Когда форма отправлена, она в настоящее время переходит к другому методу в контроллере:

[HttpPost] 
public async Task<ActionResult> MasterCl(INV_Master masterViewModel){} 

Таким образом, описанный выше метод просто return View()

Что означает, что я возвращаюсь на свою страницу, где формаи, вероятно, все заполненные поля в поле остаются нетронутыми.Но моя страница выглядит следующим образом:

enter image description here

Моя запись правильно сохраняется в базе данных, но раскрывающиеся поля теряют свое состояние, потому что они созданы на JavaScript.Они не являются обычными элементами HTML <select>.

Я хочу предотвратить это.Потому что после того, как данные формы отправлены POST на серверную часть, может быть выполнена проверка на стороне сервера, и в форме могут быть ошибки, которые я хочу запросить для какого-то уведомления.Я предполагал, что пользователь вернется к заполненной форме, и я показываю javascript alert, указывающий, какая часть формы заполнена не соответствующим образом.

Я заблудился в этой части.Я думал, смогу ли я вместо этого использовать Ajax.BeginForm для отправки данных на контроллер.Если я это сделаю, то я все равно останусь на странице, и ответ POST будет определен с помощью поставленной строки JSON, и, таким образом, я смогу использовать js для отображения оповещения для этого содержимого.Проблема в том, что я не уверен, могу ли я использовать AJAX.Begin, если я также использую загрузку файлов.

некоторые страницы заставили меня подумать, что можно использовать ajax для POST-данных ... link1 link2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...