#javascript #jquery #asp.net #asp.net-mvc #asp.net-mvc-4
#javascript #jquery #asp.net #asp.net-mvc #asp.net-mvc-4
Вопрос:
У меня есть приложение MVC5 с таблицей, и когда вы нажимаете «Создать», оно переходит на новую страницу с формой для ввода данных и сохранения. В настоящее время это работает нормально, проблема в том, что мне нужно добавить дополнительную кнопку, которая вызывает новое действие, но не будет переходить на другую страницу, просто вызовите ее и получите ответ.
Когда я помещаю следующие 2 кнопки на разные страницы, обе они работают нормально, но когда я добавляю их на одну страницу, вторая кнопка вызывает действие создания первой.
Как этого избежать?
Это кнопка сохранения, которая вызывает действие создания
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" id="actbtn" value="Create" />
</div>
</div>
Это вторая кнопка, которая отлично работает на другой странице, и когда я копирую ее
на страницу создания, она вызывает действие создания. Я знаю, что это из-за отправки, но как мне этого избежать?
@using (Html.BeginForm("Check", "User", new { Name = Model.Name }))
{
<input type="submit" id="btn" value="Check" />
<span id='result'></span>
}
Как я должен вызвать проверку действия в пользователе контроллера?
Ответ №1:
Добавьте атрибут name к каждой кнопке следующим образом
<input type="submit" value="Send" class="btn btn-default" name="buttonType" />
<input type="submit" value="Search" class="btn btn-default" name="buttonType" />
В действии контроллера,
[HttpPost, ActionName("Index")]
[ValidateAntiForgeryToken]
public ActionResult Index(string buttonType)
{
if (buttonType == "Send")
{
// add your stuffs for the first button
}
else
{
// add your stuffs for the second buttonbutton
}
}
Ответ №2:
Это то, что вам нужно сделать..
@using (Html.BeginForm("YourSaveActionName", "User", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" id="actbtn" value="Create" />
</div>
</div>
}
@using (Html.BeginForm("Check", "User", new { Name = Model.Name }))
{
<input type="submit" id="btn" value="Check" />
<span id='result'></span>
}
Комментарии:
1. Я пробую, и у меня такая же проблема, когда я нажимаю на вторую кнопку, я получаю ошибку 404, и в URL-адресе отображается путь action / controller , как этого избежать, я хотел остаться на той же странице и остановиться на BP в действии…
2. используйте этот @using (Html.BeginForm(«YourSaveActionName», «User», FormMethod. Post, new { enctype = «multipart/form-data» })) или проверьте мой отредактированный ответ
3. Спасибо, я добавил это, и ничего не изменилось:(, есть еще идеи?
4. покажите мне свой полный HTML-код, вы, должно быть, чего-то не хватает. Поскольку это работает для меня в моем проекте для 5 кнопок на одной странице.