ASP.NET MVC Controller parameter processing

会有一股神秘感。 提交于 2019-12-07 23:14:05

问题


In my application I have a string parameter called "shop" that is required in all controllers, but it needs to be transformed using code like this:

        shop = shop.Replace("-", " ").ToLower();

How can I do this globally for all controllers without repeating this line in over and over? Thanks, Leo


回答1:


Write a custom action filter, override OnActionExecuting() and apply the filter to all your controllers. (Or simply overriding OnActionExecuting() in your base controller, if you have a base controller at all.) The action method would look something like this:

protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
    var parameters = filterContext.ActionParameters;
    object shop;
    if (parameters.TryGetValue("shop", out shop))
    {
        parameters["shop"] = ((string)shop).Replace("-", " ").ToLower();
    }
}


来源:https://stackoverflow.com/questions/2570490/asp-net-mvc-controller-parameter-processing

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!