Вместо передачи одного аргумента string
вы можете попытаться создать модель представления, в которой будут храниться как выбранные значения, так и элементы переключателей.Вот пример правильной настройки viewmodel:
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
}
Страница вида должна выглядеть следующим образом, используя RadioButtonFor
для привязки со свойством IsSelected
:
@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>
}
Наконец,параметр контроллера должен быть настроен так, чтобы он принимал класс viewmodel следующим образом:
[HttpPost]
public ActionResult AddCustomerLinkToDB(ViewModel model)
{
int selectedCustomer = model.IsSelected;
// other stuff
return View();
}
При использовании этой настройки выбранное значение будет сохранено в свойстве IsSelected
при отправке формы.