C# DropDownList的选定值未显示

C# DropDownList的选定值未显示,c#,asp.net-mvc,drop-down-menu,C#,Asp.net Mvc,Drop Down Menu,我正在尝试为我的dropdownlist设置一个选定值,但无法使其显示在页面上 这就是我设置所选值的方式 productHier = new SelectList(hierarchyList, "ProductHierarchyID", "ProductHierarchyCode", orderline.PrmProductVariant.PrmProduct.PrmProductHierarchy1 ); ViewBag.productHier = productHier; 这就是我认为的部

我正在尝试为我的dropdownlist设置一个选定值,但无法使其显示在页面上

这就是我设置所选值的方式

productHier = new SelectList(hierarchyList, "ProductHierarchyID", "ProductHierarchyCode", orderline.PrmProductVariant.PrmProduct.PrmProductHierarchy1 );
ViewBag.productHier = productHier;
这就是我认为的部分

@Html.DropDownList("Hierarchy", (IEnumerable<SelectListItem>)ViewBag.productHier, "Hierarchy Seçiniz", new { @Class = "form-control control-text" })
@Html.DropDownList(“Hierarchy”,(IEnumerable)ViewBag.productHier,“Hierarchy Seçnizing”,新{@Class=“form control text”})
在这个问题上,我尝试了许多其他问题的建议,但没有一个对我有帮助。我想知道我错过了什么


编辑:调试时,我可以在控制器和视图中看到指定为选定值的值,但不知何故,我无法在页面上看到它们。

要绑定
层次结构
值,需要使用
DropDownListFor
HtmlHelper,如下所示:

@Html.DropDownListFor(m=>m.Hierarchy, (IEnumerable<SelectListItem>)ViewBag.productHier, "Hierarchy Seçiniz", new { @Class = "form-control control-text" })
@Html.DropDownListFor(m=>m.Hierarchy,(IEnumerable)ViewBag.productHier,“Hierarchy Seçnizing”,新{@Class=“form control text”})

返回视图时,必须在控制器中设置
层次结构
属性。

我认为按照您的方式,您需要这样做:

@Html.DropDownList("productHier", null, "Hierarchy Seçiniz", new { @Class = "form-control control-text" })
请注意,这种创建下拉列表的方式不适用于验证

您必须使用
DropDownListFor
以获得正确的验证


希望这有帮助

是模型中的一个属性。如果是这样,那么将其设置为您想要选择的选项的值(绑定到模型时,
SelectList
构造函数的第四个参数被忽略。它只是下拉列表的名称,在我的模型中没有任何名称为“Hierarchy”的内容。