предположим, что у вас есть следующая форма:
<form id="ajax-form">
<fieldset>
<input type="text" id="firstname" name="firstname" />
<input type="text" id="lastname" name="lastname" />
<input type="submit" value="send" />
</fieldset>
</form>
с использованием jQuery
$(document).ready(function(){
$("#ajax-form").submit(function(){
$.ajax({
type: "POST",
url: "Person/Add",
data: $("#ajax-form").serialize(),
success: function (response) {
// whatever you want to happen on success
},
error: function (response) {
alert('There was an error.');
}
});
});
});
Доступ к вашим данным в методе действия.
public ActionResult Add(FormCollection form)
{
string firstname = form["firstname"];
string firstname = form["lastname"];
// do whatever you want here
// then return something to the view
return Json(/*some object*/);
}
Другой способ - использовать Microsoft Ajax
<% using (Ajax.BeginForm("Add", "Person",
new AjaxOptions() {
UpdateTargetId = "formDiv",
InsertionMode = InsertionMode.Replace,
HttpMethod = "Post" })) {%>
<fieldset>
// Form Elements Here.
</fieldset>
<% } %>
UpdateTargetId
- это идентификатор html-элемента, на который нужно нацелиться.
Опция InsertionMode имеет три значения Replace
, InsertAfter
, InsertBefore
Надеюсь, это было полезно
Обновление : вам не нужно возвращать результат Json в вашем методе действия, вы можете просто вернуть частичное представление или любой HTML-код в качестве объекта ответа и затем вставить его с помощью jQuery.