在剃刀动态单选按钮(dynamic radiobutton in razor)

2019-10-17 03:05发布

我使用的razor视图引擎和有一点麻烦创建的列表radiobutton

我填充表一for我的模型在我看来,价值循环。 在每一行我想有一个radiobutton 。 我希望能够选择只有一个行并从模型中获取相关项目ID,并提交到另一页。 我知道如何发布。 其实,我通过使用实现了这个checkbox 。 但随着问题checkbox是,它允许多个选择。

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

Answer 1:

假设你有一个这样的视图模型

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

而你设置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)单选按钮。 因此只有一个可以被选择。

在你POST操作,您可以通过检查SelectedPaymentType属性值读取选定值

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

}


文章来源: dynamic radiobutton in razor