2012-03-14 38 views
1

目前,我創建了兩個按鈕和設置選擇的值是這樣的:有沒有簡單的方法來創建按鈕列表並設置選定的值?

@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> 
} 

我有我的頁面上有許多單選按鈕,所以我在尋找一種方式用更少的代碼來做到這一點。

我也看到:

Has anyone implement RadioButtonListFor<T> for ASP.NET MVC?

http://jonlanceley.blogspot.com/2011/06/mvc3-radiobuttonlist-helper.html


這些是唯一的選擇嗎?

回答

2

以下似乎更短的方式來實現相同的:呈現視圖時

@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屬性將被設置爲true
  • Test_Emne屬性將被設置爲 null
  • 如果第二個收音機被選中,Test_Emne屬性將被設置爲false

UPDATE:

這可以擴展到任何財產和單選按鈕的任何數字。例如:

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

,然後根據不同的富屬性的值的相應的單選按鈕將被選中。例如,如果您設置了model.Foo = "value3";,則將預先選擇第三個無線電。

+0

這與布爾運算非常好。謝謝!是否有類似的方法,當我有五個單選按鈕的值從1-5,並且選定的按鈕應該是具有與屬性相同的值(即屬性名稱:Bes_Af_Value)? – Kenci 2012-03-14 13:10:34

+1

@Kenci,當然。這適用於你想要的任何類型。我用一個例子更新了我的答案。 – 2012-03-14 13:12:50

+0

太棒了!謝謝! – Kenci 2012-03-14 13:26:46

相關問題