You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在MVC Core 6 Razor语法中为DropDownListFor添加自定义data属性

在ASP.NET Core 6 Razor中为DropDownListFor添加自定义data-singleselect属性的解决方案

因为C#匿名对象不允许属性名包含连字符,直接写data-singleselect会触发语法错误,这里提供两种可行的解决办法:

方案一:用下划线替代连字符

Razor的Html辅助方法会自动将匿名对象中的下划线转换为连字符,适配data属性的命名规则。修改你的Razor代码如下:

@Html.DropDownListFor(model => model.DivisionId, Model.DivisionList ?? new List<SelectListItem>(), "--Select--", new { @class = "form-control", @id = "Division_List", data_singleselect = "" })

这段代码会渲染出带有data-singleselect=""属性的下拉框,和你需要的HTML效果完全一致。

方案二:使用Dictionary定义属性

如果更倾向于直接写带连字符的属性名,可以用字典封装所有HTML属性,避开C#的语法限制:

@{
    var htmlAttrs = new Dictionary<string, object>
    {
        { "class", "form-control" },
        { "id", "Division_List" },
        { "data-singleselect", "" }
    };
}

@Html.DropDownListFor(model => model.DivisionId, Model.DivisionList ?? new List<SelectListItem>(), "--Select--", htmlAttrs)

这种方式支持任意带特殊字符的自定义属性,兼容性更强。

两种方案最终生成的HTML都会包含目标自定义属性,满足你的需求。

内容的提问来源于stack exchange,提问作者Baba Ranjith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 12:05:28