Вы можете инициировать нажатие кнопки отправки с помощью JavaScript.
Присвойте идентификатор кнопке
<button type="submit" style="display: none" id="btn-search">Search</button>
, и теперь в событии document.ready
вы можете вызвать событие нажатия
$(function () {
$("#btn-search").trigger("click");
})
Другой вариант - вызвать событие формы submit
с помощью JavaScript.
Здесь я использую jQuery.Но вы можете сделать то же самое и с ванильным JavaScript.
РЕДАКТИРОВАТЬ: Согласно вопросу в комментарии
Как поставить условие для запуска только один раз.Например, если пользователь нажимает кнопку «Поиск», и информация фильтруется и загружается в представление, не запускается ли этот триггер?
Вы можете использовать переменную flag в вашем для управления этим.Укажите метод JavaScript в качестве значения свойства OnBegin
вашего AjaxOptions
.Этот метод будет вызван до вызова ajax.На основании значения переменной вашего флага вы можете вернуть true или false.Когда этот метод возвращает false
, вызов ajax не будет выполнен.
Вот краткий пример.
@using (Ajax.BeginForm("Index", "Brand",
new AjaxOptions
{
InsertionMode = InsertionMode.Replace,
OnBegin = "searchAjaxBegin",
UpdateTargetId = "GridList"
}))
{
<input type="text" name="query" value="" />
<button type="submit" id="btn-search">Search</button>
}
и в вашем JavaScript
<script>
var searchCallMade = false;
function searchAjaxBegin() {
if (searchCallMade) {
console.log('Will not proceed with AJAX call');
return false;
}
}
$(function () {
$("#btn-search").trigger("click");
searchCallMade = true;
})
</script>
Если вам нужен больший контроль над тем, как выполняется ваш вызов Ajax, вы можете также рассмотреть возможность отключения помощника Ajax.BeginForm
и написания кода для обработки события отправки формы и выполнения вызова ajax самостоятельно.