1

ビューエンジンを使用してrazorいますが、のリストを作成するのに少し問題がありradiobuttonます。

forビュー内のモデルの値を含むループをテーブルに入力しています。各行に。が必要ですradiobutton。1つの行だけを選択し、モデルから関連アイテムIDを取得して、別のページに送信できるようにしたいと思います。投稿方法を知っています。私は実際にを使用してこれを達成しましたcheckbox。ただし、問題checkboxは、複数選択できることです。

だから私は使用する必要があると思いますradiobutton。どんな助けでもいただければ幸いです。

4

1 に答える 1

3

このような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

}
于 2012-08-07T15:09:04.477 に答える