您可以使用它DataAnnotations
来执行此操作 - 事实上,数据注释不仅仅支持服务器端强制执行模型有效性。他们还可以为实体框架和客户端脚本提供提示,以便进行数据库/客户端验证,并向 MVC 可以检查的方法和属性添加元数据
例如对于模型:
class PersonDetailsModel
{
[Required("Please enter a name")] // Don't allow no value, show the message when the rule is broken (if client side validation is enabled it shows when you tab off the control)
[DisplayName("Full Name")] // Hint for MVC - show this when using the helper methods e.g. in MVC4 Razor syntax @Html.LabelFor(model => model.Name)
public string Name { get; set; }
}
是的,在业务层(模型)中保留尽可能多的业务逻辑。除了横切关注点之外,您的组件应该尽可能松散耦合。这样就可以在一个中心位置进行更改,您的代码更具可测试性和可维护性,并且还可以帮助您保持编程的一致性(这有助于项目的新手快速上手)
如果您有更复杂的规则,您可以编写 EF 验证器。
http://msdn.microsoft.com/en-gb/data/gg193959.aspx
如果您没有使用实体框架,那么您可能需要考虑它 - 如果您使用的是另一个 ORM,那么显然使用支持它的工具。如果您不使用 ORM,那么还有其他选择,但您必须编写一些管道代码