要解决"asp.net/MVC自定义模型验证属性不起作用"问题,可以按照以下步骤进行:
using System;
using System.ComponentModel.DataAnnotations;
public class CustomValidationAttribute : ValidationAttribute
{
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
// 自定义验证逻辑,根据需要进行修改
if (value != null && value.ToString().Contains("test"))
{
return ValidationResult.Success;
}
return new ValidationResult(ErrorMessage ?? "输入值不满足自定义验证规则");
}
}
using System.ComponentModel.DataAnnotations;
public class MyModel
{
[CustomValidation]
public string MyProperty { get; set; }
}
using System.Web.Mvc;
public class MyController : Controller
{
[HttpPost]
public ActionResult MyAction(MyModel model)
{
if (ModelState.IsValid)
{
// 模型验证通过
// 执行其他操作
return View("Success");
}
else
{
// 模型验证失败
// 返回视图并显示错误信息
return View(model);
}
}
}
通过以上步骤,就可以在ASP.NET MVC中使用自定义模型验证属性。当输入值不满足自定义验证规则时,模型验证将失败,并且在视图中显示错误信息。