Как обработать ответ Ajax(Ajax.BeginForm) через угловой контроллер?
У меня есть частичный вид бритвы, который использует Ajax.BeginForm
, Проблема в том, что я хочу обработать ответ ajax через угловой контроллер, который прикреплен к этому представлению. Хотя я могу прикрепить пользовательские атрибуты к входам, используя htmlattributes
Я не мог найти ничего похожего для Ajax.BeginForm
помощник помимо AjaxOptions. Но как я могу определить метод углового контроллера внутри него?
upd: я знаю что OnSuccess
и т.д. события ajax могут обрабатываться с помощью обычного JavaScript, как показано ниже:
<div class="content">
@using (Ajax.BeginForm("AccountCheckLogin2", "Login", new AjaxOptions { OnSuccess = "OnSuccessLogin", OnBegin = "OnBeginLogin", OnComplete = "OnCompleteLogin", OnFailure = "OnFailureLogin" }))
{
//inputs here
}
<a class="link" href="/Registration/Registration">Я не зареестрований</a>
</div>
</div>
<script type="text/javascript">
function OnSuccessLogin(response) {
if (response.ResponseCode == "1") {
window.location = "/";
}
else
{
$("#LoginValidationSummary ul").append("<li>"+response.ResponseMessage+"</li>");
}
}
function OnBeginLogin() {
$("#loginSubmit").prop("disabled", true);
}
function OnCompleteLogin() {
$("#loginSubmit").prop("disabled", false);
}
function OnFailure() {
alert("Whoops! That didn't go so well did it?");
}
</script>
Вопрос в том, могу ли я обработать эти события с помощью методов Angular?
1 ответ
Чтобы ответить на ваш вопрос, да. Вы можете и должны использовать AngularJS для обработки этих событий. Вам не нужно использовать Ajax Form Helper, вместо этого используйте обычную форму. Вы можете подключить эту форму, чтобы использовать ng-click
или же ng-submit
событие. Это событие должно вызвать метод в вашем контроллере Angular. Что в свою очередь должно впоследствии сделать ваш сервисный звонок для отправки самой формы.