问题描述:
在使用 Asp.Net Core 进行开发时,远程验证属性没有发起调用,导致无法进行远程验证。
解决方法:
在对应的模型类中,确保使用了 [Remote]
特性来标记需要进行远程验证的属性,并设置了相应的验证方法和验证控制器。
例如,以下代码示例中,Email
属性使用了 [Remote]
特性,并设置了验证方法 IsEmailAvailable
和验证控制器 AccountController
。
public class RegisterViewModel
{
// Other properties...
[Remote(action: "IsEmailAvailable", controller: "Account", ErrorMessage = "Email already exists.")]
public string Email { get; set; }
}
在验证控制器 AccountController
中,确保实现了与远程验证属性中设置的验证方法相对应的方法。
例如,以下代码示例中,IsEmailAvailable
方法会被远程验证属性调用,用于检查邮箱是否已存在。
public class AccountController : Controller
{
// Other methods...
public JsonResult IsEmailAvailable(string email)
{
bool isAvailable = CheckEmailAvailability(email);
return Json(isAvailable);
}
private bool CheckEmailAvailability(string email)
{
// Check email availability logic...
// Return true if email is available, false otherwise.
}
}
远程验证属性的发起调用依赖于 jQuery 和 jQuery Validate 插件。确保在页面中正确加载了这些 JavaScript 文件。
例如,以下代码示例中,在页面中通过添加 标签加载了 jQuery 和 jQuery Validate 插件。
通过以上步骤,可以解决 Asp.Net Core 远程验证属性没有发起调用的问题。确保远程验证属性正确配置、验证方法和验证控制器正确实现,并加载了正确的 JavaScript 引用,即可使远程验证生效。