自定义模型绑定和验证

时间:2017-02-04 17:01:58

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

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

1 个答案:

答案 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),因此您无需担心任何问题。我之前已经多次使用它并且效果非常好。