相关疑难解决方法(0)

为什么我的视图模型不能与实现接口的通用ViewModel绑定?(ASP.NET MVC 3)

我试图通过我的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))类返回IEnumerableCompany对象,进而实现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 …

c# asp.net-mvc interface viewmodel asp.net-mvc-3

6
推荐指数
1
解决办法
4085
查看次数

标签 统计

asp.net-mvc ×1

asp.net-mvc-3 ×1

c# ×1

interface ×1

viewmodel ×1