Razor 如何使用MVC在选项上创建具有自定义数据属性的DropDownList并保留验证?

Razor 如何使用MVC在选项上创建具有自定义数据属性的DropDownList并保留验证?,razor,asp.net-core-mvc,model-binding,unobtrusive-validation,Razor,Asp.net Core Mvc,Model Binding,Unobtrusive Validation,使用不引人注目的验证,如果我只是执行@Html.DropDownListFor(或任何其他xxxFor),那么MVC将从我的模型中弹出相应的客户端验证属性 但是,我需要一个解决方案,其中每个选项都添加了特定的数据自定义属性。为此,我使用了一个foreach并手动呈现HTML 但这样做,我就失去了验证。我不确定是否可以自己添加它,而不进行硬编码,这样它仍然基于模型上的数据注释 最后,我想要一个dropdownlist绑定到我的ViewBag.ListOfItems,使用key/value作为值/文

使用不引人注目的验证,如果我只是执行
@Html.DropDownListFor
(或任何其他xxxFor),那么MVC将从我的模型中弹出相应的客户端验证属性

但是,我需要一个解决方案,其中每个选项都添加了特定的数据自定义属性。为此,我使用了一个
foreach
并手动呈现HTML

但这样做,我就失去了验证。我不确定是否可以自己添加它,而不进行硬编码,这样它仍然基于模型上的数据注释

最后,我想要一个dropdownlist绑定到我的
ViewBag.ListOfItems
,使用key/value作为值/文本,并使用
数据自定义属性
包含从ListOfItems获取的另一个值,无论模型上有什么模型验证(在本例中,
[必需]
,但我将重复使用此代码,可能还有其他属性)


这可能吗?

保留
foreach
,但使用
SelectTagHelper

<select asp-for="Foo">
    @foreach (var option in Model.FooOptions)
    {
        <option value="@option.Value" data-whatever="blah">@option.Text</option>
    }
</select>

@foreach(Model.FooOptions中的var选项)
{
@选项.文本
}