次のドロップダウン リストを含む編集ビューがあります。
@Html.DropDownListFor(model => model.Size,
new SelectList(Enumerable.Empty<SelectListItem>(), "Size", "Size"),
Model.Size,
new { id = "WoodSize" })
@Html.ValidationMessageFor(model => model.Size)
コントローラーの関連部分は次のとおりです。
[HttpPost]
public ActionResult Edit(Part part)
{
try
{
if (ModelState.IsValid)
{
unitOfWork.PartRepository.Update(part);
unitOfWork.Save();
return RedirectToAction("Index");
}
}
catch (DataException)
{
//Log the error (add a variable name after DataException)
ModelState.AddModelError("", "Unable to save changes. Try again, and if the problem persists, see your system administrator.");
}
return View(part);
SelectedValue は Get で表示されますが、変更しない限り、Post でコントローラーに返されず、更新は失敗します。値が手動で選択された場合、選択が返され、更新が成功します。SelectValue は実際には何も選択せず、デフォルトのテキストのみを表示しているようです。
私は何かが欠けている必要がありますが、何が欠けているのか途方に暮れています。