3
我在尝试编写一个html助手,我想在其中遍历一个已知类型的属性,这是一个通用列表,并输出所需的HTML内容。以下是我如何构建视图模型以确保任何视图模型符合助手的大纲;在html帮助器中从视图模型访问泛型集合
接口定义:
public Interface ITheViewModelInterface<T> where T : class
{
IEnumerable<T> Items { get; set; }
}
混凝土抽象接口实现(这样我可以定义默认值):
public abstract class TheConcreteViewModelImplementation<T> : IViewModelInterface<T> where T : class
{
public virtual IEnumerable<T> Items { get; set; }
}
视图模型:
public class TheViewModel : TheConcreteViewModelImplementation<MyListType>
{
}
什么是帮助者的定义,使我可以访问基类中正确类型的项目列表?我不完全确定在这个实例中需要强类型助手,但是如何在助手调用中显式传递项类型?
有你看着使用[显示模板(http://bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part-1-introduction.html)代替? – levelnis 2013-04-24 13:16:21
@levelnis,没有我没有看过任何深度的显示模板。你认为这种方法会更适合我的要求吗? – MaRk 2013-04-24 13:43:01
我认为这可能相当不错。您需要在Views \ Shared \ DisplayTemplates中创建一个与其代表的类型名称相同的模板(例如'MyListType.cshtml'),然后调用'Html.DisplayFor(m => m.Items)'来渲染你的物品了。 – levelnis 2013-04-24 13:50:06