Отправка Ajax.Beginform при использовании плагина JQuery Validate не останавливает отправку. Есть ли хороший способ убедиться, что Ajax.Beginform не отправлен?
Я также пытался использовать плагин JQuery Forms, чтобы «подправить» мою форму. Это работает удовольствие. Тем не менее, моя форма является формой входа в систему, и если пользователь успешно войдет в систему, я бы хотел, чтобы они были перенаправлены. Я сделал это в Ajax.BeginForm, возвращая объект JavaScript, но тот же код, использующий JQuery.Form.js, просто отображает Javascript, а не выполняет его. Есть ли способ справиться с этим?
[как указано ниже, я добавил пример кода]
Код контроллера
if (Request.IsAjaxRequest())
{
return Content("/receipt/latest");
}
else
{
return RedirectToAction("latest", "receipt");
}
Я использовал это, чтобы вернуть строку этой функции js: -
JS
function manageResponse(responseText, statusText) {
if (responseText.toString().substr(0, 1) == '/') {
window.location = responseText;
}
else {
$("#formResult").text(responseText);
}
}
Я использовал эти опции, чтобы связать ответ с плагином JQuery Form.
var options = {
beforeSubmit: function() {
return $('#login').validate().form();
},
success: manageResponse
};
Мне это кажется немного "хакерским", но это работает. Я спрашивал, был ли лучший путь или нет?
Rob