У меня есть набор кнопок отправки, которые действуют как простое меню, где каждая кнопка загружает другой тип сеанса после первоначального входа пользователя в систему - например, «Просмотр» / «Проверка». При отправке я хочу, чтобы форма также вызывала функцию, которая изменит логическое значение, чтобы затем показать 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" }));
}
}