我有一个带有以下下拉列表的编辑视图:
@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 实际上并没有选择任何东西,而只显示默认文本。
我必须错过一些东西,但我不知道是什么。