このようなViewModelがあると仮定します
public Class CheckOutViewModel
{
public string SelectedPaymentType { set; get; }
public IEnumerable<SelectItems> PaymentTypes { set; get; }
}
そして、ActionメソッドでPaymentTypesコレクションを設定し、GET
強く入力されたビューに送信します。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" />
}
メソッドがデータベース内のレコードGetPaymentTypes()
のリストを返すと仮定します。SelectItems
これにより、同じ名前の値(SelectedPaymentType)のラジオボタンが表示されます。したがって、1つしか選択できません。
POST
アクションでは、SelectedPaymentTypeプロパティ値を確認することで、選択した値を読み取ることができます
[HttpPost]
public ActionResult Checkout(CheckOutViewModel model)
{
//check the value of model.SelectedPaymentType
}