#c# #asp.net-mvc #asp.net-mvc-5 #html-helper
#c# #asp.net-mvc #asp.net-mvc-5 #html-помощник
Вопрос:
У меня есть @using (Html.BeginForm())
частичное представление о приложении, которое я разрабатываю. У меня есть текстовое поле на странице, и при нажатии кнопки ввода после ввода текстового поля оно отправляет форму. Могу ли я в любом случае сказать MVC, чтобы он не выполнял никаких действий в помощнике BeginForm?
Я попытался передать @using (Html.BeginForm(null))
, но получил тот же результат. Я понимаю, что, вероятно, мог бы удалить Html.BeginForm и просто использовать теги, а javascript возвращал false для действия отправки, но интересно, могу ли я добиться такого поведения с помощью html.beginform?
Обновление — отображение частичного представления
<div class="row">
<div class="col-xs-12 h-form no-padding">
@using (Html.BeginForm(null))
{
@Html.AntiForgeryToken()
<p>
<div>
<input id="txtSearch" type="text" placeholder="Search...">
</div>
</p>
}
</div>
</div>
Обновление II
Похоже, что если там есть только 1 текстовое поле и нажмите enter, форма будет отправлена при отправке действия. Если я помещу на страницу 2 текстовых поля, то нажатие либо не вызовет действие POST.
В любом случае я собираюсь удалить Html.BeginForm() и использовать <form onsubmit="return false">
Комментарии:
1. Итак, вы не хотите отправлять форму?
2. Итак, почему у вас есть форма, которую вы не хотите отправлять?
3. используйте тег формы, чтобы получить дескриптор всего содержимого, находящегося в частичном представлении, а затем сериализовать эти данные через ajax для автоматического сохранения — вот почему я мог бы просто использовать теги формы, но интересно, есть ли другой способ
4. какая польза от формы там? Можете ли вы уточнить, что на самом деле хотите
5. Как вы отправляете свою форму с помощью Java script?
Ответ №1:
Если вы хотите, чтобы при нажатии на кнопку отправки ваша форма не отправлялась.Тип кнопки отправки должен быть button
<input **type="button"** value="Create" onclick="ajaxSubmit();" />
Комментарии:
1. это текстовое поле, которое у меня есть на экране, и при нажатии на него вводится сообщение
Ответ №2:
Чтобы отключить публикацию формы при нажатии enter в текстовом поле, добавьте следующую функцию jquery:
$(function() {
$(':text').bind('keydown', function(e) { // on keydown event for all textboxes
if(e.keyCode == 13) { // if key pressed it enter
e.preventDefault();
return false;
} else {
return true;
}
}
});
Ответ №3:
вы можете использовать
using (Ajax.BeginForm())
{
@Html.AntiForgeryToken()
<p>
<div>
<input id="txtSearch" type="text" placeholder="Search...">
</div>
</p>
}
а затем может выполнить задачу.
или попробуйте
using (Html.BeginForm("", "", FormMethod.Get))
{
@Html.AntiForgeryToken()
<p>
<div>
<input id="txtSearch" type="text" placeholder="Search...">
</div>
</p>
}