我试图通过我的View传递以下ViewModel的实例:
public class CompanyListViewModel<T> where T : ICompany
{
public IEnumerable<T> CompanyList;
public IEnumerable<string> StateList;
public CompanyListViewModel(IEnumerable<T> list)
{
CompanyList = list;
}
}
Run Code Online (Sandbox Code Playgroud)
View采用的方式如下:
@model Project.ViewModels.CompanyViewModels.CompanyListViewModel<ICompany>
Run Code Online (Sandbox Code Playgroud)
我的控制器代码将这样的内容传递给View:
CompanyListViewModel<ICompanyInListAsUser> model = new CompanyListViewModel<ICompanyInListAsUser>(_companyService.FilterByCompanyState(state));
Run Code Online (Sandbox Code Playgroud)
凡ICompanyInListAsUser
接口实现的ICompany
接口.本_companyService.FilterByCompanyState(state))
类返回IEnumerable
的Company
对象,进而实现ICompanyInListAsUser
接口.
出于某种原因,访问我的视图时收到以下错误:
The model item passed into the dictionary is of type 'Project.ViewModels.CompanyViewModels.CompanyListViewModel`1[Project.ViewModels.CompanyViewModels.ICompanyInListAsUser]', but this dictionary requires a model item of type 'Project.ViewModels.CompanyViewModels.CompanyListViewModel`1[Project.ViewModels.CompanyViewModels.ICompany]'.
如果ICompanyInListAsUser
接口确实实现了,为什么我收到此错误ICompany
?
任何帮助将不胜感激.
谢谢.
编辑
我还想说明我想在这里实现的目标.假设我的应用程序中有多个访问级别(例如用户和管理员).如果我的Company …