Reputation: 2403
I have a custom action filter (say CustomActionFilter
) where I override OnActionExecuting
to validate the Action's input parameter such that if the input param is null
then the filter will render a view (say view MyErrorView
) contains "Index not found" text else it will let execute the regular Action method.
My Action Method:
[CustomActionFilter]
public ActionResult Index(int indexId)
{
return View();
}
My Filter's overridden method:
void IActionFilter.OnActionExecuting(ActionExecutingContext filterContext)
{
filterContext.HttpContext.Trace.Write("(Custom Action Filter)Action Executing: " + filterContext.ActionDescriptor.ActionName);
if (filterContext.ActionParameters["indexId"] == null)
{
//my code goes here
}
}
What code I need to put in the of condition to do so.
Upvotes: 0
Views: 58
Reputation: 1503
void IActionFilter.OnActionExecuting(ActionExecutingContext filterContext)
{
filterContext.HttpContext.Trace.Write("(Custom Action Filter)Action Executing: " + filterContext.ActionDescriptor.ActionName);
if (filterContext.ActionParameters["indexId"] == null)
{
filterContext.Result = new ViewResult
{
ViewName = "MyErrorView",
ViewData = filterContext.Controller.ViewData,
TempData = filterContext.Controller.TempData
}
}
base.OnActionExecuting(filterContext);
}
Upvotes: 1