Asp MVC 2:键入的编辑器模板

时间:2010-12-13 10:11:48

标签: asp.net-mvc-2 viewmodel viewdata strongly-typed-view editorfor

(我在本文中引用this tutorial

我想使用Html.EditorFor(或Html.Editor)助手。

如果UserControl需要其他数据,则会通过

传递

...EditorFor(model => model.Album, new { Artists = Model.Artists, ... })

在UserControl中,可以通过 ViewData [ stringKey ] 访问它,即

... new SelectList(ViewData["Artists"] as IEnumerable, ...

对我来说这闻起来有点腥,因为我更喜欢强类型的ViewModel ,这可以确保特定的数据可用。

我现在有点陷入困境,因为我不知道有哪种“打字方式”可以找到,或者我应该按原样接受这种方式。

你是如何解决这个问题的?任何帮助表示赞赏!

LG
warappa

1 个答案:

答案 0 :(得分:0)

我可能会更改我的视图模型,以便我不需要传递此附加信息。例如,你可以制作一张有艺术家收藏的专辑。现在你所要做的就是:

<%: Html.EditorFor(model => model.Album) %>

在你的编辑器模板中:

<%: Html.DropDownListFor(x => x.SelectedArtist, new SelectList(Model.Artists)) %>