#c# #asp.net-mvc #razor
#c# #asp.net-mvc #razor
Вопрос:
У меня есть две кнопки отправки и несколько текстовых полей на моей странице. Когда я ввожу данные в текстовое поле и нажимаю кнопку ввода, форма должна активировать кнопку «Начать новую». Но форма приводит в действие старую кнопку. Я не хочу добавлять on click
к кнопке, потому что я проверяю некоторые условия и перенаправляю со своего контроллера. Что мне нужно сделать, чтобы моя форма не запускалась по умолчанию для кнопки со старым значением при нажатии кнопки ввода какие-либо предложения, пожалуйста?
контроллер :
public ActionResult Index(MyModel model, string new, string old)
{
if (new == "new")
{
if (rows > 0)
{
return ProcessAction();
}
else
{
return ProcessAction();
}
}
if (old == "old")
{
if (rowsAmount > 0)
{
//do something
}
else
{
//do something
}
}
return View();
}
Вид:
@using (Html.BeginForm("Index", "Application", FormMethod.Post))
{
@Html.AntiForgeryToken()
<div class="col aligncenter">
<div class="form-row topMargin">
<div class="col-md-6 form-group">
@Html.TextBoxFor(model => model.Email)
</div>
<div class="col-md-4 form-group">
@Html.TextBoxFor(model => model.FirsttName)
</div>
<div class="col-md-2 form-group">
@Html.TextBoxFor(model => model.LastName)
</div>
</div>
<div class="form-row">
<div class="col-md-9 form-group text-right">
<button class="btn" type="submit" name="old" value="old">Get History</button>
</div>
<div class="col-md-3 form-group text-right">
<button class="btn" type="submit" name=newr" value="new">Start New</button>
</div>
</div>
</div>
}
Ответ №1:
чтобы изменить отправку формы через, old button
просто измените button type
с type="submit"
на type="button"
<div class="form-row">
<div class="col-md-9 form-group text-right">
<button class="btn" type="btn" name="old" value="old">Get History</button>
</div>
<div class="col-md-3 form-group text-right">
<button class="btn" type="submit" name=newr" value="new">Start New</button>
</div>
</div>
Обновить
вы можете указать Get History button
a click event
вы можете создать Ajax call
через javascript function
и указать это, чтобы получить историю или привязать свою controller action
ссылку к привязке и
Комментарии:
1. поскольку у них нет события щелчка, вам нужно предоставить это событие щелчка, вы можете создать функцию javascript и предоставить ее для получения истории или привязать свой контроллер к привязочной ссылке
Ответ №2:
У ваших кнопок есть type="submit"
, что означает, что они отправят форму при нажатии. Вместо этого используйте type="button"
, чтобы избежать отправки формы. Вы также можете использовать type="reset"
, если хотите предоставить способ сброса входных данных формы.
<form>
First name:<br>
<input type="text" name="firstname"><br>
Last name:<br>
<input type="text" name="lastname">
<button type="button">Just a button</button>
<button type="submit">Submit</button>
<button type="reset">Reset the form</button>
</form>