如何从强类型ViewModel创建视图?
问题描述:
我开始使用ViewModels创建代表MVC4中几个底层EF实体的自定义视图。我在我的MVC项目中创建了一个名为'ViewModels'的文件夹,并在该文件夹中有我的类。我想要做的是基于强类型的ViewModel类创建一个新的视图。然而,当在ASP.NET MVC中创建视图时显示的wizzard与“创建强类型视图”选项和后续“模型类”下拉选择不包含包含我的ViewModel类。列出的唯一类是来自我的实体框架模型的类。如何从强类型ViewModel创建视图?
如何创建基于我创建的ViewModel类的视图,或者让它显示在Model类列表中?
谢谢!
答
您需要编译MVC项目,然后才能在新的ViewModel类中显示该下拉列表。
答
卜默认情况下,向导将显示除控制文件中的所有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
是名称这个类所在的命名空间
在新的ViewModel类将显示在该下拉列表中之前,您可能需要编译MVC项目。 – 2012-08-01 19:57:33
@JohnW - 你是100%的权利。对我来说,不是典型的超级尝试,而不需要重新构建。你的建议不是评论,而是真正的答案。重新发布作为答案,我会标记它。谢谢。 – atconway 2012-08-01 20:03:43