如何从强类型ViewModel创建视图?

时间:2012-08-01 19:52:13

标签: asp.net-mvc

我开始使用ViewModels创建自定义视图,这些视图代表MVC4中的几个底层EF实体。我在我的MVC项目中创建了一个名为“ViewModels”的文件夹,并在该文件夹中创建了我的类。我想要做的是基于强类型的ViewModel类创建一个 new 视图。但是,在ASP.NET MVC中使用“创建强类型视图”选项创建视图时显示wizzard,后续“Model Class”下拉选择包含我的ViewModel类。列出的唯一类是来自我的Entity Framework模型的类。

如何根据我创建的ViewModel类创建一个View,或者让它显示在Model类列表中?

谢谢!

2 个答案:

答案 0 :(得分:2)

在新的ViewModel类出现在该下拉列表中之前,您需要编译MVC项目。

答案 1 :(得分:0)

默认情况下,向导将显示除模型DropDown中的那些Controller文件(以Class file结尾)之外的所有Controller.cs名称

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

@model YourViewModelClassName

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

例如:如果你有这样的客户视图模型

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

所以视图应该是这样的

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

如果您的类ViewModel类驻留在命名空间中,则需要指定完全限定的类名

@model MyNameSpaceName.CustomerViewModel

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