Asp.net mvc 4 将id添加到mvc4下拉列表

Asp.net mvc 4 将id添加到mvc4下拉列表,asp.net-mvc-4,Asp.net Mvc 4,这是我的代码: @Html.DropDownListFor(m=> m.IsCurrentlySmoking, new{ onchange="RiskChange(this)", id="IsCurrentlySmokingLeftDrp", SelectList(new List<Object>{ new { value = 0, text = "Fortsatt rökning"},

这是我的代码:

 @Html.DropDownListFor(m=> m.IsCurrentlySmoking, new{ onchange="RiskChange(this)", id="IsCurrentlySmokingLeftDrp", SelectList(new List<Object>{
                            new { value = 0, text = "Fortsatt rökning"},
                            new {value = 1, text = "Minskat rökning"},
                            new {value = 2, text = "Röker ej"},
 }, "value", "text", 0)}
@Html.DropDownListFor(m=>m.IsCurrentlySmoking,new{onchange=“RiskChange(this)”,id=“IsCurrentlySmokingLeftDrp”,SelectList(newlist{
新的{value=0,text=“Fortsatt rökning”},
新的{value=1,text=“Minskat rökning”},
新的{value=2,text=“Röker ej”},
},“值”,“文本”,0)}
在我向其添加id之前,代码运行良好。现在我得到错误:CS0746:无效的匿名类型成员声明器。必须使用成员分配、简单名称或成员访问来声明匿名类型成员


代码有什么问题吗?我已经以这种方式将id添加到其他mvc表单元素中,它工作得非常好。

您弄乱了
SelectList
htmlAttributes
顺序。只需像这样更改它,它就会工作:

            @Html.DropDownListFor(m => m.IsCurrentlySmoking, new SelectList(new List<Object>{
                        new { value = 0, text = "Fortsatt rökning"},
                        new {value = 1, text = "Minskat rökning"},
                        new {value = 2, text = "Röker ej"}, 
       }, "value", "text", 0), new { onchange = "RiskChange(this)", id = "IsCurrentlySmokingLeftDrp" })
@Html.DropDownListFor(m=>m.IsCurrentlySmoking,新选择列表(新列表{
新的{value=0,text=“Fortsatt rökning”},
新的{value=1,text=“Minskat rökning”},
新的{value=2,text=“Röker ej”},
}新的{onchange=“RiskChange(this)”,id=“IsCurrentlySmokingLeftDrp”})