【问题标题】:Validation without using Data Annotation in mvc 4 razor engine在 mvc 4 razor 引擎中不使用数据注释的验证
【发布时间】:2014-08-20 06:32:29
【问题描述】:

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

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

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

【问题讨论】:

  • DataAnnotations 对 EF 控件不起作用,什么?
  • 请让您的问题更清楚。这没有道理!!什么是“数据注释不适用于 EF 控件”?如果没有设置它,你怎么能得到一个无效的 ModelState?

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


【解决方案1】:

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

例如,我需要一个可以通过下拉列表选择或输入的地址。 如果输入的地址线之一在那里,那么它们都需要在那里。 仅使用 DataAnnotations 很难检查。

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

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

你可以使用然后

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多