【问题标题】:Custom model binding and validation in a multi-tenant environment多租户环境中的自定义模型绑定和验证
【发布时间】:2017-02-04 17:01:57
【问题描述】:

我正在开发一个多租户 .NET Core 应用程序,其中所有验证都需要是动态的(Db 驱动)。如何实现自定义模型验证?

【问题讨论】:

    标签: asp.net-mvc validation .net-core


    【解决方案1】:

    您可以使用Remote Validation 进行需要访问服务器(然后是数据库)的验证。您需要指定 actioncontroller,它将在客户端通过 AJAX 进行验证期间被调用。然后在服务器端,你可以做任何你需要的事情来验证。在您的情况下,您将需要检查数据库。这是一个例子:

    public class User
    {
        [Remote(action: "VerifyEmail", controller: "Users")]
        public string Email { get; set; }
    }
    

    以上是使用Remote 属性并指定使用Users 控制器的VerifyEmail 操作。在UsersController 类中,您将拥有如下内容:

    [AcceptVerbs("Get", "Post")]
    public IActionResult VerifyEmail(string email)
    {
        if (!_userRepository.VerifyEmail(email))
        {
            return Json(data: $"Email {email} is already in use.");
        }
    
        return Json(data: true);
    }
    

    MVC 框架将为您处理所有 AJAX(ing),因此您无需担心任何这些。我以前用过很多次,效果很好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-29
      • 1970-01-01
      • 2012-11-20
      • 2012-12-08
      • 1970-01-01
      • 2015-03-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多