我的编辑屏幕上有以下内容:
<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 的事实?
我难住了。