自定义验证属性不起作用
本文关键字:不起作用 属性 验证 自定义 | 更新日期: 2023-09-27 18:32:06
我尝试创建自定义 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; }
在视图(我使用 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();
}
}