Есть ли причина, по которой мы поступили неправильно (ведь мы находимся в 2010 году)?Дамп MS AJAX, где он принадлежит, вместе со всеми Ajax.*
помощниками, которые зависят от него, и напишите правильный код.Хотя использование MS AJAX в классических веб-формах могло быть оправдано из-за UpdatePanels и т. Д. ... делать это в новом приложении ASP.NET MVC сегодня, особенно после того, как Microsoft полностью приняла jQuery, кажется плохой идеей.
Итак, после разглагольствования вот моя рекомендация:
<% using (Html.BeginForm("Action", "Controller", new { id = Model.id }) { %>
, а затем незаметно присоедините обработчик отправки, используя jquery в отдельном файле:
$(function() {
$('form').submit(function() {
$.ajax({
url: this.action,
type: this.method,
success: function(result) {
// feel free to execute any code
// in the success callback
$('#result').html(result);
}
});
return false;
});
});
или используя превосходный плагин jquery form :
$(function() {
$('form').ajaxForm(function(result) {
// feel free to execute any code
// in the success callback
$('#result').html(result);
});
});
Преимущества этого подхода:
- Ненавязчивый
- Четкое разделение между разметкой и javascript
- Кэширование файлов javascript и уменьшение использования полосы пропускания
Бонус: нет головной боли.