У меня есть следующие в моем редактирования экрана:MVC UpdateModel не обновляется из DropDownList
<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 в моем классе является int?
Я в тупике.
Нет, у моих текстовых полей не было префикса «Кампания». Поэтому я префикс их всех «Кампания» и изменил вызов UpdateModel на UpdateModel (кампания, «Кампания»), и он теперь работает! СПАСИБО. Я думаю, что меня бросили в том, что поля показывали правильные данные, это был только UpdateModel, который был ha проблема. – Wavel