編集画面には次のように表示されます。
<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"]
しましたが、データはそこにあります!
ちなみに、編集画面の表示中は、選択リストで正しい候補を選択しています。
クラスの CandidateID が int であるのに対し、ValueProvider が文字列を提供しているという事実から問題が発生する可能性はありますか?
私は困惑しています。