使用 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});
我对一个下拉菜单有很大的疑问,因为我需要他不是强制性的。我找到了一些具有可空类型的解决方案,如 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});