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