有效从不调用自定义验证属性

发布于 2024-11-08 13:30:41 字数 449 浏览 0 评论 0原文

public class SomeValidator : ValidationAttribute
{
    public SomeValidator()
        : base("Message")
    {

    }

    protected override ValidationResult IsValid(object value, ValidationContext validationContext)
    {
        return new ValidationResult("ERROR");
    }

并且:

    [SomeValidator]
    public long Something { get; set; }

为什么 isValid 方法从未被调用? (我使用 ASP MVC 3)感谢您的帮助!

public class SomeValidator : ValidationAttribute
{
    public SomeValidator()
        : base("Message")
    {

    }

    protected override ValidationResult IsValid(object value, ValidationContext validationContext)
    {
        return new ValidationResult("ERROR");
    }

And :

    [SomeValidator]
    public long Something { get; set; }

Why isValid method is never invoked ? (I use ASP MVC 3) Thanks for help!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

绝不放开 2024-11-15 13:30:41

您必须确保您有一个控制器操作将此模型作为操作参数:

public class MyViewModel
{
    [SomeValidator]
    public long Something { get; set; }
}

然后:

public ActionResult SomeAction(SomeModel model)
{
    ...
}

或者调用 UpdateModel/TryUpdateModel 方法:

public ActionResult SomeAction()
{
    var model = new SomeModel();
    if (TryUpdateModel(model))
    {

    }
    ...
}

You must ensure that you have a controller action taking this model as action argument:

public class MyViewModel
{
    [SomeValidator]
    public long Something { get; set; }
}

and then:

public ActionResult SomeAction(SomeModel model)
{
    ...
}

or that you call the UpdateModel/TryUpdateModel method:

public ActionResult SomeAction()
{
    var model = new SomeModel();
    if (TryUpdateModel(model))
    {

    }
    ...
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文