【问题标题】:ASP.NET MVC: Custom Validation by DataAnnotation depending on configurationASP.NET MVC:根据配置通过 DataAnnotation 进行自定义验证
【发布时间】:2015-08-04 11:55:33
【问题描述】:

我正在使用 DataAnnotation 对我的视图模型进行客户端和服务器验证。我想请教一下使用自定义验证的最佳做法。

我有两个表单,它们使用相同的视图模型:

public class RecipientViewModel
{
    [Required]
    public string Address1 { get; set; }

    public string Address2 { get; set; }
}

我想要实现的是,第一个表单应该验证 Address2 字段,但第二个表单没有。当然,我的视图模型要大得多,我想尽可能地通用。

是否有可能传递要验证的字段列表以及如何传递?例如视图可以以某种方式将其传递给视图模型?

【问题讨论】:

  • 简短的回答是否定的。创建单独的视图模型。

标签: c# asp.net asp.net-mvc validation viewmodel


【解决方案1】:

请澄清您的问题或显示更多代码。 一般来说,注释非常适合检查预期结构或某种预期数据。像长度,存在,类型。 对于其他更复杂、更复杂的业务案例。好的实现将具有处理这些用例的业务层或域设计。 因此,定义您的用例并考虑控制器和数据模型之间的层。可能是注入到视图模型中的验证服务之类的东西。

HTH

编辑:您可能想看看 - 使用 ASP.NET 站点中的服务层进行验证 - http://www.asp.net/mvc/overview/older-versions-1/models-(data)/validating-with-a-service-layer-cs] 显示了一些概念 - 自这篇文章来自 2009 年以来,该技术可能略有变化,但您明白了。

【讨论】:

  • 您有任何向视图模型注入验证服务的示例吗?
猜你喜欢
  • 2013-04-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-15
  • 2012-03-30
  • 1970-01-01
相关资源
最近更新 更多