Asp.net MVC5下拉列表默认值
在我的网站的每一页上,我都有一个包含不同语言文化的下拉列表,我试图用用户cookie中的当前字符串设置下拉列表的默认值 如下所示,SelectList的默认参数是Request.Cookies\u culture.Value,但在每个请求上,下拉列表都会重置为索引0Asp.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
@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的一个原因;我同意,但为一个下拉列表制作模型似乎很愚蠢。这就像将局部变量移动到单独的对象中一样。