2010-05-25 1 views
3

asp.net mvc를 통해 쿼리 문자열 인 routevalue를 보내면 "% 20"에 urlencoded의 모든 공백이 생깁니다. 공백 문자를 "+"기호로 바꾸려면이 형식을 재정의하는 가장 좋은 방법은 무엇입니까?asp.net mvc url에서 쿼리 문자열의 형식을 지정하는 가장 좋은 방법은 무엇입니까?

아마도 IRouteHandler에서 파생 된 사용자 지정 Route 개체 나 클래스를 사용하고 있을지 모르지만 조언을 해 주시면 감사하겠습니다.

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; 
    } 
} 

을 그리고 이런 식으로 등록 :

답변

3

사용자 지정 경로를 작성 시도 할 수

routes.Add(
    new CustomRoute(
     "{controller}/{action}/{id}", 
     new RouteValueDictionary(new { 
      controller = "Home", 
      action = "Index", 
      id = UrlParameter.Optional 
     }), 
     new MvcRouteHandler() 
    ) 
); 
+0

감사 대린합니다. 이것은 완벽 해. – Stuart

관련 문제