MVC 下拉列表对于由于属性名称而未绑定的选定项

本文关键字:绑定 下拉列表 于属性 MVC 属性 | 更新日期: 2023-09-27 18:33:02

我发现了一个小的边缘情况,当 DropDownListFor 不会将视图模型中的值绑定到列表时。

下面的代码不会绑定该值。

视图模型

public class PersonViewModel
{
    [Required]
    public Title? Title { get; set; }
    public IEnumerable<SelectListItem> TitleSelectList { get; set; }
}

控制器

    public ActionResult Person()
    {
        return View(
             new PersonViewModel
             {
                 Title = Title.Mrs,
                 TitleSelectList = EnumHelper.GetSelectList(typeof(Title)),
             });
    }

视图

@Html.DropDownListFor(model => model.Title, Model.TitleSelectList, "Please select...", new { @class = "form-control" })

MVC 下拉列表对于由于属性名称而未绑定的选定项

更改属性名称可以解决此问题。

将视图模型更改为public Title? TitleTesting { get; set; }并更新代码的其余部分以匹配它将起作用。

我很想知道这是一个错误还是保留字。