gpt4 book ai didi

asp.net - 如何为 View 模型添加自定义验证方法

转载 作者:行者123 更新时间:2023-12-04 06:13:19 27 4
gpt4 key购买 nike

我尝试为 ViewModel 类添加自定义验证器:

[Serializable]
public class UserViewModel : IValidatableObject
{
public IEnumerable<ValidationResult> Validate(ValidationContext context)
{
yield return new ValidationResult("Fail this validation");
}
}

不幸的是,当调用 Action 方法时,这不会触发,例如
    [HttpPost]
public ActionResult Edit(UserViewModel user)

如何添加自定义验证逻辑? ValidationAttribute 没有提供足够简单的解决方案。我无法找到有关 MVC2 验证机制的明确信息。

最佳答案

IValidatableObject在 ASP.NET 2.0 中不受支持。在 ASP.NET MVC 3 中添加了对此接口(interface)的支持。您可以定义自定义属性:

[AttributeUsage(AttributeTargets.Class)]
public class ValidateUserAttribute : ValidationAttribute
{
public override bool IsValid(object value)
{
UserViewModel user = value as UserViewModel;
// TODO: do some validation

ErrorMessage = "Fail this validation";
return false;
}
}

然后用这个属性装饰你的 View 模型:
[Serializable]
[ValidateUser]
public class UserViewModel
{

}

关于asp.net - 如何为 View 模型添加自定义验证方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7529433/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com