ASP.NET MVC可以在视图中将接口作为模型吗?

Eke*_*ein 8 asp.net-mvc razor

假设我有以下界面:

public interface IUserListVM
{
     IList<string> UserList { get; }
}
Run Code Online (Sandbox Code Playgroud)

以及实现此视图模型接口的视图模型:

public class UserListVM : IUserListVM
{
    private IList<string> userList = new List<string>();

    IList<string> UserList
    {
        get { return userList; }
    }
}
Run Code Online (Sandbox Code Playgroud)

然后可能有一个视图,期望一个继承IUserListVM的模型.假设我有一个UserList局部视图,看起来像这样:

 @model MVCWebsite.Views.IUserListVM

 @foreach (string user in Model.UserList) {
     user
 }
Run Code Online (Sandbox Code Playgroud)

这意味着将部分视图作为独立视图.

Vla*_*irs 5

编辑后 - 是的,这是完全可能的.见dotnetfiddle

  • 作为改进@Vladimiris答案的注释,如果您想实现Display批注之类的内容,则需要将其应用于界面 (2认同)