У меня на экране редактирования есть следующее:
<label for="campaign.CandidateID">Candidate:</label>
<%= Html.DropDownList("Campaign.CandidateID", Model.Candidates, "Choose...")%>
<%= Html.ValidationMessage("CandidateID", "*") %>
и в моем контроллере:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(int id, FormCollection formValues)
{
Campaign campaign = repos.GetCampaign(id);
try
{
UpdateModel(campaign);
repos.Save();
return RedirectToAction("Index", "Admin");
}
catch
{
return View(new CampaignDTO(campaign));
}
Когда я редактирую запись и изменяю текстовые поля, все работает отлично, но когда я меняю элемент, связанный с выпадающим списком, изменение не обновляется в объекте кампании. Я проверил this.ValueProvider["Campaign.CandidateID"]
и данные там!
Кстати, во время отображения экрана редактирования он выбирает правильного кандидата в списке выбора.
Может ли проблема возникнуть из-за того, что ValueProvider предоставляет строку, тогда как CandidateID в моем классе является целым числом?
Я в тупике.