我正在研究多租户.net核心应用,其中所有验证都需要是动态的(Db驱动)。如何在.net核心中实现自定义模型验证?
答案 0 :(得分:0)
您可以使用Remote Validation进行需要转到服务器(然后是数据库)的验证。您需要指定操作和控制器,并且将在客户端通过AJAX进行验证时调用它。然后在服务器端,您可以执行任何您需要的操作以进行验证。在您的情况下,您将需要检查数据库。这是一个例子:
public class User
{
[Remote(action: "VerifyEmail", controller: "Users")]
public string Email { get; set; }
}
以上内容使用Remote
属性并指定使用VerifyEmail
控制器的Users
操作。在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),因此您无需担心任何问题。我之前已经多次使用它并且效果非常好。