我正在使用razor
视图引擎并且在创建radiobutton
.
我正在用for
我的视图中的模型值填充一个带有循环的表。在每一行我都想要一个radiobutton
. 我希望能够只选择一行并从模型中获取相关项目 id 并将其提交到另一个页面。我知道怎么发帖。我实际上是通过使用checkbox
. 但问题checkbox
在于它允许多项选择。
所以我想我需要使用radiobutton
. 任何帮助,将不胜感激。
我正在使用razor
视图引擎并且在创建radiobutton
.
我正在用for
我的视图中的模型值填充一个带有循环的表。在每一行我都想要一个radiobutton
. 我希望能够只选择一行并从模型中获取相关项目 id 并将其提交到另一个页面。我知道怎么发帖。我实际上是通过使用checkbox
. 但问题checkbox
在于它允许多项选择。
所以我想我需要使用radiobutton
. 任何帮助,将不胜感激。
假设你有这样的 ViewModel
public Class CheckOutViewModel
{
public string SelectedPaymentType { set; get; }
public IEnumerable<SelectItems> PaymentTypes { set; get; }
}
您在GET
Action 方法中设置 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
}