gpt4 book ai didi

c# - 自定义 ValidationAttribute 不起作用

转载 作者:太空狗 更新时间:2023-10-29 23:01:31 25 4
gpt4 key购买 nike

我尝试创建自定义 ValidationAttribute:

public class RollType : ValidationAttribute
{
public override bool IsValid(object value)
{
return false; // just for trying...
}
}

然后我创建(在另一个类中)-

  [RollType]
[Range(0,4)]
public int? Try { get; set; }

在 View (我使用 MVC)上我写道:

      <div class="editor-label">
Try:
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Try)
@Html.ValidationMessageFor(model => model.Try)
</div>

“范围”的验证效果很好,但自定义的却不行!

可能是什么问题?

最佳答案

试试这个

public class RollType : ValidationAttribute
{
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
return new ValidationResult("Something went wrong");
}
}

另外不要忘记检查 modelstate 在后面的代码中是否有效,否则它将无法工作,示例

    [HttpPost]
public ActionResult Create(SomeObject object)
{
if (ModelState.IsValid)
{
//Insert code here
return RedirectToAction("Index");
}
else
{
return View();
}
}

关于c# - 自定义 ValidationAttribute 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10310255/

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