У меня есть вид, где пользователи будут выбирать значение с помощью радиообъективов. Моя проблема заключается в том, что, как только пользователь нажимает кнопку submit, значения в модели View (в моем контроллере) равны нулю. На мой взгляд модель выглядит следующим образом:Элементы управления Radiobutton не отправляются в viewmodel
public class PreconditionsViewModel
{
public List<KeyValuePair<int, string>> Provinces { get; set; }
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:dd/mm/yy}", ApplyFormatInEditMode = true)]
public DateTime SeedingDate { get; set; }
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:dd/mm/yy}", ApplyFormatInEditMode = true)]
public DateTime HarvestDate { get; set; }
public int DryMatterPercentage { get; set; }
public int PostalCode { get; set; }
}
Метод Действие: (для простоты я оставил метод возвращает только индекс Но я должен быть в состоянии видеть то, что держит модель.)
[HttpPost]
public ActionResult Save(PreconditionsViewModel model)
{
return View("Index");
}
The View:
@using (Html.BeginForm("Save", "Precondition", FormMethod.Post, new { @class="userPreconditionForm" }))
{
foreach (var province in Model.Provinces)
{
@Html.Label(province.Value, new { @class = "provinces" })
@Html.RadioButtonFor(m => province.Key, province.Value)
}
<br/><br />
@Html.LabelFor(m => m.PostalCode, Resource.PostalCode)
@Html.TextBoxFor(m => m.PostalCode)
<br/><br />
@Html.Label(Resource.DesiredSeedingDate)
@Html.TextBoxFor(m => m.SeedingDate, new { @class="dateField", @readonly="true" })
<br/><br />
@Html.Label(Resource.LatestHarvestDate)
@Html.TextBoxFor(m => m.HarvestDate, new { @class = "dateField", @readonly = "true" })
<br/><br />
@Html.Label(Resource.DesiredDryMatterPercentage)
@Html.TextBoxFor(m => m.DryMatterPercentage)
<br/><br/>
<input type="submit" value="@Resource.Continue" />
}
<br/>
Как вы, вероятно, можете увидеть мои erros в коде:
foreach (var province in Model.Provinces)
{
@Html.Label(province.Value, new { @class = "provinces" })
@Html.RadioButtonFor(m => province.Key, province.Value)
}
Что я пытаюсь сделать здесь, это создать ярлык и радиобудильник для каждого KeyValuePair в моей модели ViewModel. Но я делаю это неправильно, так как они не получены в контроллере. Что я делаю не так?
(Я новичок с ASP.NET MVC, поэтому критики и улучшения приветствуются)
Добавлен отредактирован код после @ LeftyX автора Ответить
foreach (var province in Model.Provinces)
{
@Html.Label("Provinces_" + province.Key, province.Value, new { @class = "provinces" })
@Html.RadioButton("Province", province.Key, new { id = "Provinces_" + province.Key })
}
Итак, любая обратная связь? – LeftyX