【发布时间】:2017-02-04 17:01:57
【问题描述】:
我正在开发一个多租户 .NET Core 应用程序,其中所有验证都需要是动态的(Db 驱动)。如何实现自定义模型验证?
【问题讨论】:
标签: asp.net-mvc validation .net-core
我正在开发一个多租户 .NET Core 应用程序,其中所有验证都需要是动态的(Db 驱动)。如何实现自定义模型验证?
【问题讨论】:
标签: asp.net-mvc validation .net-core
您可以使用Remote Validation 进行需要访问服务器(然后是数据库)的验证。您需要指定 action 和 controller,它将在客户端通过 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),因此您无需担心任何这些。我以前用过很多次,效果很好。
【讨论】: