asp.net – 将初始空行插入到选择列表MVC LINQ SQL中

我将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(不为空).

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....