Лучший способ отформатировать строку запроса в URL-адресе asp.net mvc? - PullRequest
3 голосов
/ 25 мая 2010

Я заметил, что если вы отправили строку запроса routevalue через asp.net mvc, вы получите все пробельные символы, закодированные в "% 20". Каков наилучший способ переопределения этого форматирования, поскольку я хотел бы, чтобы пробельные символы были преобразованы в знак «+»?

Возможно, я подумал об использовании пользовательского объекта Route или класса, производного от IRouteHandler, но был бы признателен за любые советы, которые вы могли бы получить.

1 Ответ

3 голосов
/ 25 мая 2010

Вы можете попробовать написать собственный маршрут:

public class CustomRoute : Route
{
    public CustomRoute(string url, RouteValueDictionary defaults, IRouteHandler routeHandler) 
        : base(url, defaults, routeHandler)
    { }

    public override VirtualPathData GetVirtualPath(RequestContext requestContext, RouteValueDictionary values)
    {
        var path = base.GetVirtualPath(requestContext, values);
        if (path != null)
        {
            path.VirtualPath = path.VirtualPath.Replace("%20", "+");
        }
        return path;
    }
}

и зарегистрировать его так:

routes.Add(
    new CustomRoute(
        "{controller}/{action}/{id}",
        new RouteValueDictionary(new { 
            controller = "Home", 
            action = "Index", 
            id = UrlParameter.Optional 
        }),
        new MvcRouteHandler()
    )
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...