Есть ли способ отправить форму, но она остается на странице?
Конечно, вы можете использовать AJAX:
@using (Html.BeginForm())
{
... some form input fields
<input type="submit" value="Go" />
}
и затем ненавязчиво AJAXify эту форму в отдельном файле:
$(function() {
$('form').submit(function() {
$.ajax({
url: this.action,
type: this.method,
data: $(this).serialize(),
success: function(result) {
// TODO: handle the results of the AJAX call
}
});
return false;
});
});
и во избежание написания всего этого кода javascript вы можете взглянуть на отличный плагин jquery.form :
$(function() {
$('form').ajaxForm(function(result) {
// TODO: handle the results of the AJAX call
});
});
Другой альтернативой является использование помощника Ajax.BeginForm ASP.NET MVC 3:
@using (Ajax.BeginForm(new AjaxOptions { OnSuccess = "success" }))
{
... some form input fields
<input type="submit" value="Go" />
}
и затем обработчик успеха в javascript:
function success(result) {
// TODO: handle the results of the AJAX call
}
вам также нужно будет добавить скрипт jquery.unobtrusive-ajax.js
в дополнение к jquery
на свою страницу, если вы хотите использовать Ajax.*
помощники.