Как проверить, какая кнопка нажата, а также передать идентификатор из представления в контроллер

#c# #asp.net-mvc

#c# #asp.net-mvc

Вопрос:

У меня есть список в моем представлении, и каждая строка в моем списке содержит кнопки просмотра или отправки в зависимости от статуса. Если приложение завершено, затем нажмите кнопку просмотра, а затем кнопку редактирования и отправки. Когда пользователь нажимает любую кнопку, мне нужно проверить, какая кнопка нажата, и перенаправить действие на соответствующий контроллер. Проблема здесь в том, как мне передать, какая кнопка нажата, а также идентификатор из представления в контроллер?

Вид :

Это передает контроллеру только то, какая кнопка нажата. Но также мне нужно передать идентификатор. без передачи идентификатора я не могу отображать какие-либо данные на моей странице редактирования и отправки и страницах просмотра.

 @if (@list.Completed == true)
{
    <div class="col-md-2">
        <button class="btn" type="submit" name="View" id="View" value=View>View</button>

    </div>
}
else
{
    <div class="col-md-2 ">
        <button class="btn" type="submit" name="EditSubmit" id="EditSubmit" value=EditSubmit>Editamp;Submit</button>
    </div>
}  

Контроллер:

     [HttpPost]
    public ActionResult CompleteList(string View, string EditSubmit, int mylistid)
    {
        if (View == "View")
        {
            return RedirectToAction("Viewcontoller", "Primary");
        }
        if (EditSubmit == "EditSubmit")
        {
            return RedirectToAction("EditAndSubmit", "Secondary");
        }
        return View();

    }
  

Есть ли какой-либо способ, которым я могу передать идентификатор, а также нажатую кнопку контроллеру и выполнить действия внутри одного ActionResult?

Ответ №1:

В вашем контроллере значение свойства EditSubmit в методе CompleteList является свойством value кнопки. Это отображается на основе названия кнопки. Итак, если вы установите значение, равное идентификатору, то в контроллере будет получено значение was. Например, в приведенном ниже определении кнопки метод контроллера получит значение «12345» в параметре EditSubmit.

 <button class="btn" type="submit" name="EditSubmit" id="EditSubmit" value="12345">Editamp;Submit</button>