Выбор в списке переключателей является взаимоисключающим.Вы можете выбрать только одно значение.Поэтому привязка списка переключателей к свойству типа IEnumerable не имеет никакого смысла.Возможно, вам необходимо адаптировать модель представления к требованиям представления (которое в вашем случае отображает список переключателей, в котором можно сделать только один выбор).Если бы вы использовали список флажков, привязка к свойству IEnumerable имела бы смысл, так как вы можете установить несколько флажков.
Итак, давайте адаптируем модель представления к этой ситуации:
Модель:
public class MyModel
{
public string SelectedDeliveryDetailId { get; set; }
public IList<DeliveryDetail> DeliveryDetails { get; set; }
}
public class DeliveryDetail
{
public string Description { get; set; }
public int Id { get; set; }
}
Контроллер:
public class HomeController : Controller
{
public ActionResult Index()
{
var model = new MyModel
{
DeliveryDetails = new[]
{
new DeliveryDetail { Description = "detail 1", Id = 1 },
new DeliveryDetail { Description = "detail 2", Id = 2 },
new DeliveryDetail { Description = "detail 3", Id = 3 },
}
};
return View(model);
}
[HttpPost]
public ActionResult Index(MyModel model)
{
// Here you will get the id of the selected delivery detail
// in model.SelectedDeliveryDetailId
...
}
}
Вид:
@model MyModel
@using (Html.BeginForm())
{
foreach (var deliveryDetail in Model.DeliveryDetails)
{
@deliveryDetail.Description
@Html.RadioButtonFor(x => x.SelectedDeliveryDetailId, deliveryDetail.Id)
}
<button type="submit">OK</button>
}