好吧,所以我一直都读到,在ASP.NET MVC中,应该始终将业务逻辑放在模型中。所以,假设我有这个模型类:
public class CarModel
{
[Display(Name = "Car Manufacturer")]
[Required(ErrorMessage = "A Car Manufacturer is required")]
public string CarManufacturer { get; set; }
[Display(Name = "Car Year")]
public int CarYear{ get; set; }
}
如何向此模型添加方法,然后在此模型的实例上运行该方法?我的意思是说我有一个像这样的新实例:
CarModel MyCar = new CarModel();
如何向此模型添加方法,然后在模型的新MyCar实例上运行该方法?我可以这样做:
MyCar.MyModelMethod();
如果是这样,我如何编写模型方法以允许这种调用?
答案 0 :(得分:2)
这有两个方面。有MVC 模式,然后是ASP.NET MVC,这个框架在很大程度上实现了MVC模式。
在MVC中,模型是所有业务逻辑的避风港。但是,ASP.NET MVC并不真正具有模型的概念。这些类通常被称为"模型"实际上只是实体,你的POCO绑定到数据库表。这些是MVC风格模型的不良借口,这就是为什么大多数开发人员用其他两个概念补充它们:视图模型和数据访问层或DAL。
查看模型只是类,但具体来说,它们是您专门为一个或多个视图服务的类。它们通常代表一些实体类,但它们将具有不适合添加到实体类的其他属性和方法。在您的操作中,您可以将实体映射到这些视图模型/从这些视图模型中映射,从而创建关注点分离:实体只关注数据库的需求,而视图模型只关注自身的需求。图。
DAL是您拥有存储库或服务类的地方。这些将保留特定于使用您的实体类的逻辑。实体只保存数据,而DAL确定如何检索,保存数据等。
这三个(实体,视图模型和存储库/服务)一起构成了MVC模型。