ASP.NET MVC C # динамические радиокнопки, получающие коллекцию - PullRequest
1 голос
/ 10 декабря 2010

У меня есть форма, в которой может быть несколько переключателей, сгенерированных динамически в представлении, в представленной форме, как я могу собрать значения в контроллере. Например, есть динамически генерируемые переключатели, такие как Пол (Мужской и Женский), Образование (BS, MS, BCS). Как я могу иметь там значение в контейнере.

Ответы [ 2 ]

3 голосов
/ 10 декабря 2010

Если вы знаете названия переключателей, вы можете использовать параметры действия. Если имена произвольные, вы можете извлечь значения из параметра FormCollection , переданного в ваше действие POST (это NameValueCollection, чтобы вы могли перебрать ключ и получить соответствующие значения).

Лично я бы порекомендовал вам использовать детерминированные имена:

Gender:
<input type="radio" value="M" name="radios[0]" />
<input type="radio" value="F" name="radios[0]" />

Education:
<input type="radio" value="BS" name="radios[1]" />
<input type="radio" value="MS" name="radios[1]" />
<input type="radio" value="BCS" name="radios[1]" />

И в вашем контроллере вы можете использовать коллекцию:

[HttpPost]
public ActionResult Update(string[] radios)
{
    // The radios collection will contain the selected values like:
    // radios[0] = "F"
    // radios[1] = "MS"
    ...
}
1 голос
/ 13 декабря 2010

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

public ActionResult controllername(FormCollection form)
{
     foreach(string radioName in dynamicRadioList)
     {
           var value = form[radioName];
           //blah blah
     }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...