在mvc 4 razor引擎中不使用Data Annotation进行验证

时间:2014-08-20 06:32:30

标签: c# asp.net-mvc entity-framework asp.net-mvc-4 razor

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

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

ModalState.Isvalid无法正常工作。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

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

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

我过去所做的是在控件返回控制器之后但在检查ModelState.IsValid之前进行验证。

这允许在控制器中进行自定义/复杂验证

您可以使用

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

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