Вызов двух кнопок с одной страницы не работает

#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 кнопок на одной странице.