C# 如何在ASP.NET MVC5语法中将类添加到SelectListItem?

C# 如何在ASP.NET MVC5语法中将类添加到SelectListItem?,c#,asp.net-mvc,razor,razor-3,C#,Asp.net Mvc,Razor,Razor 3,我使用Razor创建了一个选择输入字段。代码如下: @Html.DropDownList("selectOption", new[] { new SelectListItem() { Text ="Option 1" , Value = "1" },

我使用Razor创建了一个选择输入字段。代码如下:

@Html.DropDownList("selectOption", new[] {
                        new SelectListItem()
                        {
                            Text ="Option 1" , Value = "1"
                        },
                        new SelectListItem()
                        {
                            Text = "Option 2" , Value = "2"
                        },
                        new SelectListItem()
                        {
                            Text = "Option 3" , Value = "3"
                        }
                    }, 
                    "Choose an Option...", 
                    new {@class = "form-control" })
我知道将自定义类添加到选择输入字段,但如何将自定义类添加到每个选择选项?甚至可以使用razor语法吗


我可以使用jQuery获得结果,但我想知道是否存在只使用razor的方法。

您不能使用内置方法。但是,您可以自己使用HTML创建控件,这样会容易得多:

<select class="form-control" id="selectOption" name="selectOption">
    <option value="">Choose an Option...</option>
    <option class="some-class-1" value="1">Option 1</option>
    <option class="some-class-2" value="2">Option 2</option>
    <option class="some-class-3" value="3">Option 3</option>
</select>

选择一个选项。。。
选择1
选择2
选择3

它甚至使它更具可读性(在我看来)。你不应该觉得你什么都需要使用助手。

不,不可能使用
@Html.DropDownList()
@Html.DropDownListFor()
或任何其他内置方法(你需要创建自己的扩展方法),请告诉我怎么做。:)你可以检查一下,看看它是怎么做的。但是,向
添加类有什么意义(类名通常用于样式设置,但不能设置选项的样式),除非不提供双向模型绑定,或包含客户端的
数据val-*
属性validation@StephenMuecke:什么型号?另外,我很确定它会在表单提交过程中绑定,您可以轻松添加所需的任何数据属性,无论模型OP想要使用什么:)@StephenMuecke:如果OP想要提供一个模型,那么我会很高兴地更新我的答案以使用它。实际的模型与我的评论无关:)