使用DataAnnotations强制从我的模型中填充DropDownList

问题描述:

有没有办法使用DataAnnotations来告诉Razor渲染DropDownList并填充特定实体中特定字段的选项?使用DataAnnotations强制从我的模型中填充DropDownList

具体来说,我在我的视图中捕获“日历年”属性,并希望它是一个DropDownList。我现在正在通过ViewBag将多年传入我的视图,然后调用“DropDownListFor”。我希望能够在ViewModel中定义它,并且只需调用“EditorFor”。

谢谢!

我不能找到一种方法,用DataAnnotation做到这一点,但你并不需要使用ViewBag,你可以通过值,就像这样:

@Html.ListBoxFor(m => m.SelectedFoos, Model.AllFoos.Select(f => new SelectListItem { Text = f.Name, Value = f.ID })) 

(注:这使用列表框,taken from an answer here,但应该类似DropDownList)。

+0

非常酷,谢谢丹尼。 – 2011-05-06 13:53:14