不能在Razor中使用变量设置DropdownList名称

时间:2016-10-30 09:37:54

标签: c# asp.net-mvc-5

我想将dropdown List名称设置为viewbag,如下所示,但返回compile error

   @{ 
    var ControlName = ViewBag.controlname;
}

@Html.DropDownList(ControlName , Model,"please select", new { @class = "form-control" })

当改变它时,它的工作正常:

@Html.DropDownList("typename", Model, "please select", new { @class = "form-control" })

1 个答案:

答案 0 :(得分:3)

您应该先将其强制转换为字符串

@{
    var ControlName = (string)ViewBag.controlname;
}

@Html.DropDownList(ControlName , Model,"please select", new { @class = "form-control" })

ViewBag是一个动态对象。因此,当您即将使用它们时,您必须明确地转换它的属性。

有关详细信息,请查看https://jsbin.com/yodolexece/edit?html,js,output