将选定的单选按钮值传递给控制器 C# MVC



我有一个显示客户 ID、客户名称和单选按钮循环的表格。我正在尝试根据表格上给出的选项链接登录的用户。

电子邮件: test@gmail.com

保管人 |客户名称 |选择用户

1234 |测试 1 |单选按钮(选中(

2345 |测试 2 |单选按钮

我想要的是,如果选中单选按钮(即custId:1234(,我想抓住该CustID。

这是我的代码:

控制器

public ActionResult AddCustomerLinkToDB(string IsSeleted)
{
string selectedCustomer = IsSeleted;
return View();
}

CSHTML

@using (Html.BeginForm("AddCustomerLinkToDB", "Admin", FormMethod.Post))
{
<table class="table table-bordered table-hover">
<tr>
<th>Customer ID</th>
<th>Customer Name</th>
<th>Select this user</th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>@item.Id</td>
<td>@item.Name</td>
<td>@Html.RadioButton("IsSelected", new { id = item.Id })</td>
</tr>
}
</table>
}

您可以尝试创建一个同时存储选定值和单选按钮项的视图模型,而不是传递单个string参数。下面是正确视图模型设置的示例:

public class ViewModel
{
// since the CustID is numeric, I prefer using 'int' property
public int IsSelected { get; set; }
public List<Customer> Customers { get; set; }
// other properties
}

视图页应如下所示,通过使用RadioButtonForIsSelected属性绑定:

@model ViewModel
@using (Html.BeginForm("AddCustomerLinkToDB", "Admin", FormMethod.Post))
{
<table class="table table-bordered table-hover">
<tr>
<th>Customer ID</th>
<th>Customer Name</th>
<th>Select this user</th>
</tr>
@foreach (var item in Model.Customers)
{
<tr>
<td>@item.Id</td>
<td>@item.Name</td>
<td>@Html.RadioButtonFor(model => model.IsSelected, item.Id, new { id = item.Id })</td>
</tr>
}
</table>
}

最后,应调整控制器参数以接受视图模型类,如下所示:

[HttpPost]
public ActionResult AddCustomerLinkToDB(ViewModel model)
{
int selectedCustomer = model.IsSelected;
// other stuff
return View();
}

通过此设置,所选值将在表单提交期间存储在IsSelected属性中。

最新更新