1

我正在使用razor视图引擎并且在创建radiobutton.

我正在用for我的视图中的模型值填充一个带有循环的表。在每一行我都想要一个radiobutton. 我希望能够只选择一行并从模型中获取相关项目 id 并将其提交到另一个页面。我知道怎么发帖。我实际上是通过使用checkbox. 但问题checkbox在于它允许多项选择。

所以我想我需要使用radiobutton. 任何帮助,将不胜感激。

4

1 回答 1

3

假设你有这样的 ViewModel

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

您在GETAction 方法中设置 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" />
}

假设GetPaymentTypes()方法将返回一个列表SelectItems供您在数据库中记录。

这将为您提供具有相同名称值(SelectedPaymentType)的单选按钮。所以只能选择一个。

在您的POST操作中,您可以通过检查 SelectedPaymentType 属性值来读取所选值

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

}
于 2012-08-07T15:09:04.477 回答