【问题标题】:Use DataAnnotations to force a DropDownList populated from my model使用 DataAnnotations 强制从我的模型填充 DropDownList
【发布时间】:2011-05-05 18:09:03
【问题描述】:
有没有办法使用 DataAnnotations 告诉 Razor 呈现 DropDownList 并填充来自特定实体中特定字段的选项?
具体来说,我在我的视图中捕获了一个“日历年”属性,并希望它是一个 DropDownList。我目前正在通过 ViewBag 将年份传递到我的视图中,然后调用“DropDownListFor”来执行此操作。我希望有一种方法可以在我的 ViewModel 中定义它,他们只需调用“EditorFor”。
谢谢!
【问题讨论】:
标签:
entity-framework
asp.net-mvc-3
razor
data-annotations
【解决方案1】:
我找不到使用 DataAnnotation 的方法,但您不需要使用 ViewBag,您可以将值传入,如下所示:
@Html.ListBoxFor(m => m.SelectedFoos, Model.AllFoos.Select(f => new SelectListItem { Text = f.Name, Value = f.ID }))
(注意:这里使用 ListBox,taken from an answer here,但对于 DropDownList 应该类似)。