public class ValidateOnlyIncomingValuesAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
var modelState = filterContext.Controller.ViewData.ModelState;
var incomingValues = filterContext.Controller.ValueProvider;
var keys = modelState.Keys.Where(x => !incomingValues.ContainsPrefix(x));
foreach (var key in keys) // These keys don't match any incoming value
modelState[key].Errors.Clear();
}
}
Now apply this filter to RegistrationController.
[ValidateOnlyIncomingValues]
public class RegistrationController : Controller
{
...
}
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
var modelState = filterContext.Controller.ViewData.ModelState;
var incomingValues = filterContext.Controller.ValueProvider;
var keys = modelState.Keys.Where(x => !incomingValues.ContainsPrefix(x));
foreach (var key in keys) // These keys don't match any incoming value
modelState[key].Errors.Clear();
}
}
Now apply this filter to RegistrationController.
[ValidateOnlyIncomingValues]
public class RegistrationController : Controller
{
...
}
本文介绍了一个名为ValidateOnlyIncomingValuesAttribute的自定义属性,该属性用于清除不在传入请求中存在的模型状态错误。通过覆盖OnActionExecuting方法实现,在RegistrationController中应用此过滤器。

被折叠的 条评论
为什么被折叠?



