我将Formviewmodel中的以下代码传递给我的View.
var ownerValues = aspnet_Users .OrderBy(u => u.Surname) .Select(u => new KeyValuePair<int,string>(u.UserId,u.Surname + " " + u.Forename.ToString() + " [" + u.UserName.ToString() + "]")); this.OwnersList = new SelectList(ownerValues,"Key","Value",incidentAction.OwnerId);
当我在浏览器中运行视图时,我的下拉列表默认为第一个项目,我希望它默认为空行.
所以我的计划是用userId = null插入一个初始行,然后插入一个空字符串,而不是’请选择’或类似的东西.
任何人都可以告诉我如何在一行代码上做到这一点,我想,不知道从哪里开始.
谢谢
解决方法
渲染您的SelectList时,您可以执行类似的操作
<%:Html.DropDownListFor(x => x.ApprovalType,Model.ApprovalTypes,"")%>
如果你想要强类型列表,或者你可以尝试
<%:Html.DropDownList("ApprovalType","") %>
在两个示例中,Model.ApprovalTypes包含SelectList或SelectListItem列表.空字符串参数在结尾是可选标签,其值也是一个空字符串编辑使用某些值插入标签(空字符串或其他内容)也会在尝试使用数据注释进行验证时产生问题.选择空标签不会触发错误消息,因为其他答案中建议的关联值将为-1(不为空).