2012-08-01 87 views
1

我开始使用ViewModels创建代表MVC4中几个底层EF实体的自定义视图。我在我的MVC项目中创建了一个名为'ViewModels'的文件夹,并在该文件夹中有我的类。我想要做的是基于强类型的ViewModel类创建一个新的视图。然而,当在ASP.NET MVC中创建视图时显示的wizzard与“创建强类型视图”选项和后续“模型类”下拉选择不包含包含我的ViewModel类。列出的唯一类是来自我的实体框架模型的类。如何从强类型ViewModel创建视图?

如何创建基于我创建的ViewModel类的视图,或者让它显示在Model类列表中?

谢谢!

+2

在新的ViewModel类将显示在该下拉列表中之前,您可能需要编译MVC项目。 – 2012-08-01 19:57:33

+0

@JohnW - 你是100%的权利。对我来说,不是典型的超级尝试,而不需要重新构建。你的建议不是评论,而是真正的答案。重新发布作为答案,我会标记它。谢谢。 – atconway 2012-08-01 20:03:43

回答

2

您需要编译MVC项目,然后才能在新的ViewModel类中显示该下拉列表。

0

卜默认情况下,向导将显示除控制文件中的所有Class file名(与Controller.cs结束)在Model下拉

只需创建一个新的普通视图,然后将其添加为视图文件的第一行

@model YourViewModelClassName 

假设YourViewModelClassName是您为ViewModel创建的类的名称。

例如:如果你有这样的

public class CustomerViewModel 
{ 
    public string Name {set;get;} 
} 

一个客户视图模型,视图应该是这样的

@model CustomerViewModel 
<p>Your view content can go here</p> 

如果你的类ViewModel类驻留在AA命名空间中,你需要指定完全合格的类名称

@model MyNameSpaceName.CustomerViewModel 

假设MyNameSpaceName是名称这个类所在的命名空间