Model.networks包含另一个称为countryId的属性。我想在每个选项标签上添加一个属性,因此看起来像:
<option value="[NetworkId]" data-countryId="[CountryId]">Canada</option>
我应该这样做哪种方式?
您可以创建一个形式的助手类来创建自定义下拉列表,并创建一个具有额外属性的“ selectListItem”类,该类具有IDictionary类型的itemshtmlattributes' - 请参见下文。您可能需要使用“ ID”或“名称”属性来访问默认模型绑定。以下有点混乱,我建议使用tagbuilder构建“选择”和“选项”标签:
视图:
@{
var item = new SelectListItemCustom { Selected = true, Value = "123", Text = "Australia", itemsHtmlAttributes = new Dictionary<string, object> { { "countrycode", "au" } } };
var items = new List<SelectListItemCustom> { item };
Html.Raw(Html.DropDownListForCustom("insertIdHere", items))
}
我创建了一个关于此的博客。
创建具有自定义选项属性的自定义MVC下拉列表并保留验证。https://jfvaleroso.medium.com/create-a-custom-mvc-dropdownlist-with-custom-option-aption-attributes-anttributes-and-tributes-the-the-the-validation-4DA8EE6E12555