Ajax.BeginForm () это тогда MvcAjax или Jquery?
По умолчанию это jquery. Вам нужно сослаться на скрипт jquery.unobtrusive-ajax.js
, чтобы это работало.
Или я бы использовал Html.BeginForm () и зарегистрировал что-то вроде $ .post в событии click формы.
Это альтернатива. Лично это то, что я делаю.
Я предполагаю, что это правильно, что я отправляю сообщение в действие create контроллера комментариев, и я бы использовал JsonModelBinder, чтобы преобразовать его в модель. После этого я вернул бы Джсона и добавил бы его в свой список комментариев ...
JsonModelBinder был представлен в ASP.NET MVC 3 и позволяет отправлять строку JSON в действие контроллера, которое будет отображаться обратно в модель представления. Например, если у вас есть следующая модель вида:
public class PersonViewModel
{
public string Name { get; set; }
public int Age { get; set; }
}
и следующее действие:
public ActionResult Foo(PersonViewModel person)
{
...
}
традиционный способ вызвать его в AJAX:
$.ajax({
url: '@Url.Action("foo")',
type: 'POST',
data: { name: 'john', age: 20 },
success: function(result) {
// TODO:
}
});
и в ASP.NET MVC 3 вы можете отправить JSON в качестве параметра запроса, который будет привязан к параметру действия PersonViewModel
:
$.ajax({
url: '@Url.Action("foo")',
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({ name: 'john', age: 20 }),
success: function(result) {
// TODO:
}
});