2012-08-07 68 views
1

我正在使用razor視圖引擎,並且在創建radiobutton列表時遇到了一些問題。剃刀中的動態單選按鈕

我正在使用for循環填充表格,並在我的視圖中顯示模型的值。 在每一行我想要一個radiobutton。我希望能夠只選擇一行,並從模型中獲取相關項目ID並將其提交到另一頁面。我知道如何發佈。我實際上是通過使用checkbox來實現的。但checkbox的問題是它允許多個選擇。

所以我想我需要使用radiobutton。任何幫助,將不勝感激。

+0

只需使用jQuery允許一個複選框可以同時選擇讀取選定的值。 – 2012-08-07 15:14:46

回答

3

假設你有一個像這樣

public Class CheckOutViewModel 
{ 
    public string SelectedPaymentType { set; get; } 
    public IEnumerable<SelectItems> PaymentTypes { set; get; } 
} 

一個視圖模型,你在你的GET操作方法來設置該PaymentTypes收集併發送至被強類型到CheckOutViewModel

public ActionResult Checkout() 
{ 
    var vm=new CheckOutViewModel 
    vm.PaymentTypes=GetPaymentTypes(); //gets a list of SelectItems 
    return View(vm); 
} 

和視圖在您查看

@model CheckOutViewModel 
@using(Html.BeginForm()) 
{ 
    foreach (var paymentItem in Model.PaymentTypes) 
    { 
    @Html.RadioButtonFor(mbox => mbox.SelectedPaymentType, 
               paymentItem.ID.ToString())  
    @paymentItem.Name  
    } 
    <input type="submit" value="Save" /> 
} 

As suming GetPaymentTypes()方法將返回一個SelectItems的列表,用於您在數據庫中的記錄。

這將爲您提供具有相同名稱值(SelectedPaymentType)的單選按鈕。所以只能選擇一個。

在你POST動作,你可以通過檢查SelectedPaymentType屬性值

[HttpPost] 
public ActionResult Checkout(CheckOutViewModel model) 
{ 
    //check the value of model.SelectedPaymentType 

}