2014-11-26 20 views
5

Supponiamo di avere la seguente interfaccia:ASP.NET MVC È possibile avere un'interfaccia come modello in vista?

public interface IUserListVM 
{ 
    IList<string> UserList { get; } 
} 

e un modello vista implementa questa interfaccia vista modello:

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

    IList<string> UserList 
    { 
     get { return userList; } 
    } 
} 

è quindi possibile avere una vista che prevede un modello che eredita l'IUserListVM . Dire che ho un UserList vista parziale che sembra qualcosa di simile:

@model MVCWebsite.Views.IUserListVM 

@foreach (string user in Model.UserList) { 
    user 
} 

Il significato di questo è di avere una vista parziale come autonomo possibile.

+0

Sì, ma se la visualizzazione principale non ha bisogno dei dati che si stanno passando, il modello sta facendo molto [SRP] (https://en.wikipedia.org/wiki/Single_responsibility_principle). Invece dovresti usare [RenderAction] (http://devproconnections.com/development/how-use-aspnet-mvc-render-action-helpers). –

risposta

Problemi correlati