【发布时间】:2019-08-20 09:18:49
【问题描述】:
我在剃须刀页面中有这个:
@Html.DropDownListFor(
m => m.UserCulture, // eg: "United Kingdom (+44)"
Model.Countries.Select(m => new SelectListItem {
Text = m.Name + " (" + m.CallingCode + ")", // eg: "United Kingdom (+44)"
Value = m.CallingCode // eg: "+44"
}).ToList(),
Model.UserCulture // eg: "United Kingdom (+44)"
)
据我所知,DropDownListFor 的参数是:
- 指定回发表单时要设置的模型属性
- 构建项目列表以填充下拉列表
- 提供默认的“项目 0”以添加到下拉列表顶部并预选
我想避免 #3(我不希望将项目添加到下拉列表的顶部)并且只需让下拉列表预先选择由 m.UserCulture 指定的项目(或者,更确切地说, Model.UserCulture)。
简而言之,我的问题似乎是,预选项目(使用此标签助手)的唯一方法是将该项目添加到下拉列表的顶部,并使用第三个参数。
【问题讨论】:
-
我遇到了同样的问题,老实说,我不知道是否有更好的解决方案,但为了克服这个问题,我使用
<select>和<option>标签手动呈现下拉列表,然后使用 if声明将selected放在我需要的地方
标签: razor-pages html.dropdownlistfor