Asp.net MVC5下拉列表默认值

Asp.net MVC5下拉列表默认值,asp.net,asp.net-mvc,vb.net,cookies,Asp.net,Asp.net Mvc,Vb.net,Cookies,在我的网站的每一页上,我都有一个包含不同语言文化的下拉列表,我试图用用户cookie中的当前字符串设置下拉列表的默认值 如下所示,SelectList的默认参数是Request.Cookies\u culture.Value,但在每个请求上,下拉列表都会重置为索引0 @Using Html.BeginForm("GetCulture", "Base", FormMethod.Post, New With { _ .id = "CultureForm" }) @Html.DropDow

在我的网站的每一页上,我都有一个包含不同语言文化的下拉列表,我试图用用户cookie中的当前字符串设置下拉列表的默认值

如下所示,SelectList的默认参数是Request.Cookies\u culture.Value,但在每个请求上,下拉列表都会重置为索引0

@Using Html.BeginForm("GetCulture", "Base", FormMethod.Post, New With { _
   .id = "CultureForm"
})
   @Html.DropDownList("Culture", _
   New SelectList(ViewBag.Culture, "Key", "Value", Request.Cookies("_culture").Value), _
   New With { _
      .class = "form-control lang-toggle hidden-xs", _
      .onchange = "document.getElementById('CultureForm').submit();"
   } _
)
End Using

谁能看出我做错了什么?关于默认参数有什么我应该知道的吗?我可以确认Request.Cookies\u culture.value中的值也在html select>选项值中。

因此该错误完全是浪费时间,下面是遇到相同错误的人的错误:

控件不能与ViewBag中的键同名


所以@Html.DropDownListCulture。。。和ViewBag。区域性会导致冲突,并导致未设置默认值。

是的,这是始终使用DropDownListFor的一个原因;我同意,但为一个下拉列表制作模型似乎很愚蠢。这就像将局部变量移动到单独的对象中一样。