У меня есть класс Контакты:Radioboxfor модель связывания с классом
public class Contact
{
public int Id { get;set; }
public Boolean DefaultYN {get;set; }
public string AdrType { get; set; }
public string Street {get; set; }
public string Town {get; set; }
public string HouseNr { get; set; }
public string PostCd { get; set; }
}
У меня есть VieModel
public class ContactVm
{
public Contact SelectedContact { get; set; }
public Contact SelectedInvoiceContact { get;set; }
public List<Contact> ContactList { get; set; }
}
У меня сильно - typped Посмотреть
@model MvcBeaWeb.Models.ContactVm
<!-- Address Div -->
@using (Html.BeginForm("Index", "OrderSummary"))
{
<div id="deliveryAddressTab" class="deliveryAddressTab" style="margin: 10px 3px;">
@foreach (var item in Model.ContactList)
{
<div style="display: inline-block; float: left;">
@Html.RadioButtonFor(x => x.SelectedContact, item, new {@checked = true ,id = "item" + item.Id })
</div>
<div id="@item.Id" style="float: left; margin-left: 10px; font-weight: 500;">
<span class="spnTown">@item.PostCd @item.Town</span>
</div>
}
</div>
}
Итак, вы видите, что для каждого Contact
от ContactList Я создаю один радиобудильник для SelectedContact
эл. Но так как это сложный тип (контактный объект) при нажатии на кнопку входа, и я переходите к индексу действия моего контроллера OrderSummary
public ActionResult Index (ContactVm contactVm)
{
/* .... */
}
мой параметр contactVm пуст и модель связывания, кажется, не работает
по умолчанию это зовет Get Функция для вашего действия вы можете украсить свой метод действия с HttpPost и использованием FormMethod.Post в Html.BeginForm («Индекс», «OrderSummary»). –
Вы не можете привязать переключатель (или любой другой элемент управления) к сложному объекту. И почему вы устанавливаете '@checked = true', что означает, что всегда будет выбран последний переключатель. –
Используйте @using (Html.BeginForm (« Index »,« OrderSummary », FormMethod.Post)), и, как сказал Stephen, вы не можете относятся к сложному объекту – Vinod