第一種:直接在執行action以前驗證模型 實現 IActionFilteride
public class ModelStateFilter : IActionFilter { public void OnActionExecuting(ActionExecutingContext context) { ModelStateDictionary modelState = context.ModelState; if (!modelState.IsValid) { context.Result = new BadRequestObjectResult(modelState); } } public void OnActionExecuted(ActionExecutedContext context) { } }
第二種 屬性的實現spa
/// <summary> /// 簡化模型驗證 modelState.IsValid不用每個寫 /// </summary> [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, Inherited = true)] public class ModelValidationAttribute : ActionFilterAttribute { public override void OnActionExecuting(ActionExecutingContext context) { ModelStateDictionary modelState = context.ModelState; if (!modelState.IsValid) { context.Result = new BadRequestObjectResult(modelState); } } }