2016-11-26 69 views
1

如果我有一个数据库,并且我将所有模型都基于数据库(使用LINQ基本上可以获取/设置数据)。是否有可能只使用这些模型的一部分来创建我的观点?假设我在表中有三个圆柱,而我​​只需要两个用于我的视图,我可以简单地使用三个中的两个使用我的数据库模型,还是应该创建一个新的模型用于我的视图。MVC 5可能只使用视图的一部分模型?

如果我必须创建新模型,任何简单的方法来做到这一点?我使用Visual Studio 2015年

谢谢

+0

[MVC中的ViewModel是什么?](http://stackoverflow.com/questions/11064316/what-is-viewmodel-in-mvc) –

回答

1

是很常见的创建视图模型在视图中把数据时,表示您的域模型的一个切片。

例如,您可能有一个BookViewModel和一个BookEditModel。您可以根据型号显示和允许编辑不同的字段。

class BookViewModel 
{ 
    [ReadOnly] 
    public string ISBN { get; set;} 
    [ReadOnly] 
    public string Title { get; set;} 
    [ReadOnly] 
    public string Author { get; set;} 
} 

class BookEditModel 
{ 
    [ReadOnly] 
    public string ISBN { get; set;} 
    [Validate(...)] 
    public string Title { get; set;} 
    [Validate(...)] 
    public string Author { get; set;} 
    [ReadOnly] 
    public DateTime LastUpdated {get;set;} 
} 

如果你正在寻找到一个简单的方法来创建这些视图模型,有一个叫做AutoMapper工具,让您可以轻松地域和视图模型之间的映射。

+0

所以基本上我应该创建新的视图模型,对吗? – user3117628

+0

是 - 正确! – axlj

+0

好的,谢谢! :)当我能够时,我会接受。 – user3117628