ASP.Net MVC: Могу ли я использовать FormCollection, чтобы определить, какой переключатель был выбран? - PullRequest
0 голосов
/ 16 декабря 2009

Я использую FormCollection для получения клиентских входных данных в представлении ASP.Net MVC. Я использовал флажок и просто проверял, содержит ли список AllKeys в FormCollection имя флажка, который я проверял. Теперь мне нужно переключиться на радиокнопку, но, поскольку входы должны иметь одинаковое имя (что мне кажется немного глупым), я не могу определить, какая радиокнопка была выбрана.

Или я могу?

Ответы [ 3 ]

5 голосов
/ 16 декабря 2009

Хорошо, если у вас есть три переключателя с одинаковыми именами, тогда, когда вы вернете значения обратно в коллекцию форм, значением этого ключа будет значение выбранного переключателя. Вот как они работают. Они используют то же имя, что и логическая группа, поэтому выбор одного из них отменяет выбор предыдущего. Таким образом, вы можете предположить, что значение является значением выбранной радиокнопки, если вы идентифицируете группу по имени!

Andrew

3 голосов
/ 16 декабря 2009

Предполагая, что у вас есть 3 радиокнопки:

 <% = Html.RadioButton("radio", "1")%>
 <% = Html.RadioButton("radio", "2")%>
 <% = Html.RadioButton("radio", "3")%>

Когда вы POST, вы получите только 1 значение, проверенное, например:

var radio = Convert.ToInt16(Request.Form["radio"]);

FormCollection будет содержать только одну клавишу с соответствующим значением.

Я рекомендую использовать связыватели моделей с помощью прямой привязки параметров:

public ActionResult Action(int radio)

или с использованием ViewModel.

0 голосов
/ 16 декабря 2009

Я использовал jQuery для этого и установил скрытое поле.

Итак, у меня есть что-то вроде этого;

var RadioButtonValue = $('input:radio[class=RadButtonClassGroupName]:checked').val();

Затем я могу установить значение скрытого поля в RadioButtonValue.

Я знаю, что это решение для вас отстой, но я использовал его таким образом в посте jQuery ajax, но если все остальное не удастся, можно применить и к вашей проблеме.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...