Не удается определить, какая кнопка отправки нажата

На мой взгляд, у меня есть два типа ввода.

  1. <input type="submit" name="submitbutton1" value="Save">

2.<input type="submit" name="submitbutton2" value="Process">

Мое представление - Manage.vbhtml, и в этом представлении у меня есть форма с двумя вышеуказанными кнопками отправки.

Мой контроллер — StaffController, а «Управление функциями (элемент как персонал, кнопка отправки1 как строка, кнопка отправки2 как строка) как ActionResult» связана с приведенным выше представлением. Когда я нажимаю любую из двух кнопок отправки, я должен получить значение этой кнопки в строковом параметре, но это ничего мне не дает. Пожалуйста, помогите мне, я хочу определить, какая кнопка отправки была нажата. Упомянутый результат действия имеет <HttpPost> _ в атрибуте.

Я следовал по этой ссылке но все еще безрезультатно.


person Nimit Vachhani    schedule 10.10.2014    source источник
comment
маршрутизация должна что-то делать с этим?   -  person Nimit Vachhani    schedule 11.10.2014


Ответы (1)


Вы можете проверить это с FormCollection:

в HTML:

<input type="submit" name="submitbutton" value="Save">
<input type="submit" name="submitbutton" value="Process">

и в действии:

[HttpPost]
public ActionResult Manage()
{

   var temp = Request.Form["submitbutton"].ToString();

   if(temp == "Save")
   {
     // save clicked
   }
   if(temp == "Process")
   {
     // Process clicked
   }

    return View();

}

or:

[HttpPost]
public ActionResult Manage(FormCollection form)
{

   var temp = form["submitbutton"].ToString();

   if(temp == "Save")
   {
     // save clicked
   }
   if(temp == "Process")
   {
     // Process clicked
   }

    return View();

}
person Ehsan Sajjad    schedule 10.10.2014
comment
Спасибо, но все равно не повезло. Форма не содержит ключ с именем submitbutton. То же самое работает на моем другом контроллере и его методе, но не на этом контроллере и методе. - person Nimit Vachhani; 11.10.2014
comment
Убедитесь, что кнопки находятся внутри формы - person Ehsan Sajjad; 11.10.2014
comment
Эй, чувак, кажется, я нашел проблему. Что ж, я передаю модель персонала в это представление, и в качестве одного из свойств у нее есть идентификатор электронной почты. Я использовал удаленную проверку для этого свойства. Проверка работает, но возвращает Json (True, JsonRequestBehavior.AllowGet), поэтому, когда я нажимаю кнопку, она ничего не отправляет для кнопки отправки. Есть ли шанс, что я могу изменить свой код проверки? - person Nimit Vachhani; 11.10.2014
comment
Okies нашел решение - я должен был изменить свою «кнопку» на «ввод», а в классе css я должен был пройти класс отмены, чтобы предотвратить проверку на стороне клиента, и при щелчке я получал полный пост обратно и, таким образом, кнопка имена. - person Nimit Vachhani; 11.10.2014