#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>