在我网站的每个页面上,我都有一个包含不同语言文化的下拉列表,我尝试使用用户Cookie中的当前字符串设置下拉列表的默认值。
如下所示,SelectList
的默认参数为Request.Cookies("_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("_culture").Value)
中的值也在html select > option
值范围内。
答案 0 :(得分:0)
所以错误完全是浪费时间,对于那些遇到同样错误的人来说,这是错误的:
控件的名称与ViewBag中的键名称不同。
因此@Html.DropDownList("Culture" ...)
和ViewBag.Culture
会导致冲突并导致默认设置未设置。