使用 DropdownFor 将 null 作为默认值传递

Pass null as default value with DropdownFor

我对一个下拉菜单有很大的疑问,因为我需要他不是强制性的。我找到了一些具有可空类型的解决方案,如 int?,但这仅适用于 int、datetime 等,但我在模型中的类型是其他对象(参考)。简而言之,我有团队结构,有些团队没有父团队,因此引用应该为空,所以我该怎么做才能不必选择下拉列表,我得到父团队的空值

型号(简体):

    public class Team
    {
         public Team ParentTeam { get; set; }
    }

控制器:

     var listTeam = (from team in listOfTeams.AsEnumerable()
                        select new SelectListItem
                        {
                            Text = team.Name,
                            Value = team.ID.ToString()
                        }).ToList();

        SelectList dropDownlistOfTeams = new SelectList(listTeam, "Value", "Text");

和视图:

    <div class="form-group">
            @Html.LabelFor(model => model.ParentTeam, new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.DropDownListFor(model => model.ParentTeam, (SelectList)ViewBag.ListOfTeams, "-- Set Parent --")
            </div>
        </div>

非常感谢。

在控制器中,只需添加一个空团队。

listTeam.Add(new SelectListItem() {Text="None", Value=null});