我是ASP.Net MVC的新手。我看到人们在asp.net mvc中谈论ViewModel的用法,但事实上我并不清楚为什么我应该创建ViewModel类。
如果有人对ViewModel的实际使用情况有所了解,并且使用ViewModel的简单代码进行解释,那会更好。感谢
答案 0 :(得分:2)
ViewModel非常适合当您的模型实体与您想要在屏幕上显示的内容一对一对应时。
一个简单的例子是存储人员信息的应用程序。想象一下,您的域模型有一个Person实体和一个地址实体。每个人都有许多地址,但有一个默认地址。在您的一个视图中,您希望显示Person的详细信息以及其默认地址的详细信息。如果你想保持你的视图强烈输入模型(你应该),那是不可能的,因为你不能输入2个实体的视图。
这里是viewModels处于最佳状态的地方。您创建一个新的viewmodel类,它具有类型为person的类型和类型为address的属性,在控制器中,您可以使用所需信息填充这些属性,并根据此Person +地址模型类键入视图。
至于他们的代码,他们就像任何其他模型一样。很快就会有一个例子。
域模型(可能在您的数据访问层中找到,或在单独的域模型项目中):
public class Person{
public int PersonId{get;set;}
public string Name {get;set;}
.
.
.
}
public class Address{
public int AddressId{get;set;}
public string Street1 {get;set;}
public string Street2 {get;set;}
.
.
}
然后你可以像这样拥有一个viewModel类:
public class MyViewModel{
public Person ThePerson{get;set;}
public Address TheAddress{get;set;]}
}
甚至
public class MyViewModel : Person{
public Address TheAddress{get;set;]}
}
但我喜欢第一种解决方案,而同事则定期选择第二种解决方案。然后,您的视图将针对MyViewModel进行强类型化,并通过语法在视图中访问这些值:@ model.Person.PersonId