ng-submit разрывная форма действия с MVC контроллер - PullRequest
0 голосов
/ 18 марта 2020

У меня есть набор кнопок отправки, которые действуют как простое меню, где каждая кнопка загружает другой тип сеанса после первоначального входа пользователя в систему - например, «Просмотр» / «Проверка». При отправке я хочу, чтобы форма также вызывала функцию, которая изменит логическое значение, чтобы затем показать div, который спрашивает, хочет ли пользователь начать сеанс заново или продолжить.

Моя проблема заключается в том, что с помощью ng-submit в форме для выполнения функции также нарушает работу контроллера и не позволяет странице получить данные сеанса. Есть ли другой способ вызвать функцию, отличную от ng-submit? Я использую ng-if с логическими значениями для отображения элементов div.

Вот мое частичное представление меню:

<form class="form-horizontal" action="@Url.Action("Menu", "Home")" method="POST" ng-submit="page.menuCheckedTrue()">
    @Html.AntiForgeryToken()
       <div id="menu" ng-if="(page.login && !page.menuChecked)">
          <div class="form-group">
              <button type="submit" name="submit" value="reviewsession">Review Session</button>
              <button type="submit" name="submit" value="testsession">Test Session</button>
          </div>
       </div>
</form>

Элемент div в том же частичном представлении, которое я хотел бы показать:

<div id="session-status" ng-if="(page.menuChecked && !page.sessionStatusChecked)">
   <button type="button" ng-click="page.restart()">Restart</button>
   <button type="button" ng-click="page.continue()"> Continue</button>                        
</div>

Мой контроллер:

public ActionResult Menu(string submit) {
   if (submit == "reviewsession") {
      return Redirect(Url.Action("Index", "Home", new { id = reviewSession }));
   }
   if (submit == "testsession") {
      return Redirect(Url.Action("Index", "Home", new { id = testSession }));
   }
   else {
      return Redirect(Url.Action("Index", "Home", new { id = "Error" }));
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...