从html帮助器中的视图模型访问泛型集合

时间:2013-04-24 11:37:02

标签: asp.net-mvc razor

我正在尝试编写一个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>
{ 

}

什么是帮助器定义,以便我可以访问基类中正确键入的项目列表?我不完全确定在这个实例中我需要一个强类型的帮助器,但是如何在helper调用中显式传递items类型?

1 个答案:

答案 0 :(得分:0)

经过对此事的更多研究后,我发现这个讨论提供了一些答案(以及来自微软的一个相当令人震惊的声明!)到我的问题;

ASP.NET MVC 3 HtmlHelper Exception does not recognize ModelMetadata on inherited interface