Есть ли простой способ создать список кнопок и установить выбранное значение? - PullRequest
1 голос
/ 14 марта 2012

В настоящее время я создаю две кнопки и устанавливаю выбранное значение следующим образом:

@if (Model.Test_Emne == null)
{
    @Html.RadioButtonFor(x => x.Test_Emne, 1) <span>Ja</span>
    <br />
    @Html.RadioButtonFor(x => x.Test_Emne, 0) <span>Nej</span>

}

@if (Model.Test_Emne == true)
{
    @Html.RadioButtonFor(x => x.Test_Emne, 1, new { @checked = "checked" }) <span>Ja</span>
    <br />
    @Html.RadioButtonFor(x => x.Test_Emne, 0) <span>Nej</span>
} else if (Model.Test_Emne == false)
{
    @Html.RadioButtonFor(x => x.Test_Emne, 1) <span>Ja</span>
    <br />
    @Html.RadioButtonFor(x => x.Test_Emne, 0, new { @checked = "checked" }) <span>Nej</span>
}

У меня много переключателей на моей странице, поэтому я ищу способ сделать это с меньшим количеством кода.

Я также видел:

Кто-нибудь реализовывал RadioButtonListFor для ASP.NET MVC?
и
http://jonlanceley.blogspot.com/2011/06/mvc3-radiobuttonlist-helper.html


Это единственные варианты?

1 Ответ

2 голосов
/ 14 марта 2012

Следующий способ кажется более коротким для достижения того же:

@Html.RadioButtonFor(x => x.Test_Emne, true) <span>Ja</span>
<br />
@Html.RadioButtonFor(x => x.Test_Emne, false) <span>Nej</span>

Возможные сценарии при рендеринге вида:

  • Test_Emne = null => ни один из радиомодулей не отмечен
  • Test_Emne = true => проверено первое радио
  • Test_Emne = false => проверено второе радио

Возможные сценарии обратной отправки:

  • Если не выбран ни один из радиомодулей, свойство Test_Emne будет установлено на null
  • Если проверен первый радиомодем, свойство Test_Emne будет установлено на true
  • Если проверено второе радио, свойство Test_Emne будет установлено в false

ОБНОВЛЕНИЕ:

Это может быть расширено на любое свойство илюбое количество радио кнопок.Например:

public string Foo { get; set; }

, а затем:

@Html.RadioButtonFor(x => x.Foo, "value1") <span>Foo 1</span>
@Html.RadioButtonFor(x => x.Foo, "value2") <span>Foo 2</span>
@Html.RadioButtonFor(x => x.Foo, "value3") <span>Foo 3</span>
@Html.RadioButtonFor(x => x.Foo, "value4") <span>Foo 4</span>
...

, а затем в зависимости от значения свойства Foo будет выбран соответствующий переключатель.Например, если вы установите model.Foo = "value3";, будет выбрано третье радио.

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