在mvc 4剃刀引擎中不使用数据注释的验证

本文关键字:数据 注释 验证 mvc 剃刀 引擎 | 更新日期: 2023-09-27 18:18:42

我想在不使用数据注释的情况下执行验证,因为我在n层MVC 4剃刀架构中使用了EF。数据注解也不能用于EF控件。你们都可以在这里看到我的代码:

[HttpPost]
public ActionResult RegisterNewUser(CreateUser obj)
{
    if (ModelState.IsValid)
    {
        //    
    }
}

ModalState.Isvalid不起作用。我该如何解决这个问题?

在mvc 4剃刀引擎中不使用数据注释的验证

我认为您正在寻找的是DataAnnotation验证无法为您提供所需灵活性的情况。

例如,我需要一个地址,可以通过下拉选择或输入。如果其中一个输入的地址行在那里,那么所有的地址行都需要在那里。这很难单独使用DataAnnotations进行检查。

我过去所做的是在控件返回到控制器之后,但在ModelState之前进行验证。IsValid被选中。

允许在控制器

中自定义/复杂验证

你可以用

    ModelState.AddModelError("PostalCode", "The postal code is missing.");

来修改ModelState(使其无效),然后可以在检查ModelState后将控制权返回给视图。IsValid