MVC :Razor 中DropDownListFor写法
页面中常用到DropDownLisFor,
今天在使用layui UI时,刚好遇到一个问题,于是在此作一个记录!
首先,看下它在MVC中的定义:
1 | public static MvcHtmlString DropDownListFor<TModel, TProperty>( this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression, IEnumerable<SelectListItem> selectList, string optionLabel, object htmlAttributes); |
四种属性代表四重载:
- expression ,从前面的Expression<Func<TModel,TProperty>>表达式中,清楚知道它的用法就是获取某个属性的值(可以是字符串或者其它类型),如:
model=>model.Username;
- IEnumerable<SelectListItem>,获取的是IEnumerable的SelectListItem选项,通常就是绑定DropDown(HTML中Select)下拉数据,如:
ViewData["Username"] as IEnumerable<SelectListItem>;
- optionLabel,DropDown默认选中项,这个就不用太多解释了;
- htmlAttributes,设置Html 常用属性,如 htmlAttributes: new { @id="UserId",@Value="123" @lay_search = ""}
htmlAttributes: new { @id="UserId",@Value="123" @lay_search = ""}
简单介绍了下它的4重属性,其它扩展就不说了。
实例为:
@Html.DropDownListFor(model => model.UserName, (IEnumerable<SelectListItem>)ViewData["Username"],"请选择",htmlAttributes:new {@class="form-select" @lay_search=""})
下面,说下htmlAttributes重点注意项:(其实上面有标红色)
- htmlAttributes @标识属性有区分大小写的哦,比如上面的@Value 写成value就无效;
- @名称不支持"-" 横杠(破折号),要写成"_"下划线(这个就是我今天用layui时发现的问题)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)