Я хочу иметь возможность публиковать данные формы с помощью сообщения ajax, но не могу понять, как переопределить поведение по умолчанию при публикации формы.Я все еще хочу подтверждение на стороне клиента от ASP NET MVC3 все же.Например, когда я нажимаю «отправить» в этой форме, она переходит непосредственно к действию контроллера, когда у меня есть функция jquery, которая должна непосредственно обрабатывать любую отправку из этой формы.
@model BlogApp.Models.PostUser
@using (Html.BeginForm("LoginForm", "Home", FormMethod.Post, new { id = "testform" }))
{
@Html.ValidationSummary(true)
<fieldset>
<div class="editor-label">
@Html.LabelFor(model => model.Name)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Name, new { id = "Name" })
@Html.ValidationMessageFor(model => model.Name)
</div>
<input type="submit" value="submit" />
</fieldset>
}
этоФункция jquery:
$('#testform').live('submit', function () {
$('#testform').validate();
var name = $('#Name').val();
var logout = '<a href="#" onClick="logOut()">logout</a>';
var login_success = '<p>Logged in as: ' + name + '</p>' + logout;
if ($(this).valid()) {
$.ajax({
url: '/home/loginform',
type: 'POST',
data: { name: name },
success: function (data) {
if (data === true) {
$('#loginform').empty();
$('#loginform').append(login_success);
}
else {
alert('Failed to save the user');
}
}
});
}
});
Итак, мой вопрос: вместо того, чтобы форма автоматически переходила к действию контроллера (/ Home / LoginForm /) и возвращала этот результат, как я могу заставить отправку формы запускать мою функцию jquery(чтобы страница не обновлялась автоматически), но все еще поддерживается проверка на стороне клиента?