Asp.net mvc 多租户环境中的自定义模型绑定和验证

Asp.net mvc 多租户环境中的自定义模型绑定和验证,asp.net-mvc,validation,.net-core,Asp.net Mvc,Validation,.net Core,我正在开发一个多租户的.NET核心应用程序,其中所有的验证都需要是动态的(Db驱动的)。如何实现自定义模型验证?您可以在需要转到服务器(然后是数据库)的位置进行验证。您需要指定操作和控制器,并且在验证期间将通过AJAX从客户端调用它。然后在服务器端,您可以执行任何需要的操作以进行验证。在您的情况下,您需要检查数据库。以下是一个例子: public class User { [Remote(action: "VerifyEmail", controller: "Users")] p

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

您可以在需要转到服务器(然后是数据库)的位置进行验证。您需要指定操作和控制器,并且在验证期间将通过AJAX从客户端调用它。然后在服务器端,您可以执行任何需要的操作以进行验证。在您的情况下,您需要检查数据库。以下是一个例子:

public class User
{
    [Remote(action: "VerifyEmail", controller: "Users")]
    public string Email { get; set; }
}
上面使用的是
Remote
属性,并指定使用
用户
控制器的
验证电子邮件
操作。在
userscoontroller
类中,您将有如下内容:

[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),因此您无需担心这些问题。我以前用过很多次,效果非常好