2011-08-10 4 views
0

라우팅과 함께 넷 4 및 C#.URL에서 ID를 숨기는 방법

GetRouteUrl (또는 다른 방법)에서 DataToken의 값을 전달하는 방법을 알고 싶습니다.

내 목표는 크레타 "mysite.com/category-title"같은 URL 과 (URL입니다 categoryId 숨어) 통과하지만, 대상 페이지에 내가 필터링 숨겨진 categoryId를 검색하고자하는 것입니다.

지금은 결과없이 DataTokens를 사용하여이 작업을 수행하려고합니다.

내 질문 :

  • 가 어떻게 URL 라우팅에 의해 생성하고 아이디 숨겨진 지나가는 ID를 숨기기 위해?
  • 올바른 방법 (DataTokens 사용)인가요? 더 좋은 아이디어 (코드 예제를 제공해주세요)

감사합니다.

public static void RegisterRoutes(RouteCollection routes) 
    { 
      // Ex: mysite.com/category-title/ 
     routes.MapRouteCategoryView("myRouteName", "{Title}"); 
    } 


<asp:HyperLink runat="server" Text='<%# Eval("Title") %>' NavigateUrl='<%# GetRouteUrl(new { Title = Eval("Title") }) %>'></asp:HyperLink> 
I

public static void MapRouteCategoryView(this RouteCollection routes, string name, string url) 
     { 
      // Page Handler map filter to physical path. 
      PageRouteHandler handler = new PageRouteHandler("~/Cms/FrontEndCms/CategoryView.aspx"); 
      // Create the Route. 
      CustomRoute myRoute = new CustomRoute(url, handler); 
      // Setting the Route. 
      //myRoute.Constraints = new RouteValueDictionary { { "CategoryId", @"\d+" } }; // Only valid Int for Id. 
      myRoute.DataTokens = new RouteValueDictionary { { "RouteName", name } }; 
      // Add the Route to RouteCollection. 
      routes.Add(myRoute); 
     } 

답변

0

당신이 URL 재 작성 모듈을 사용할 수 있습니다 IIS의 최신 버전을 사용하는 경우 것.

나는 보통 경로를 매핑 한 쿼리 문자열 값으로 카테고리 (또는 제 경우에는 페이지)를 얻기 위해 URL을 사용하여 경로를 찾은 다음 데이터베이스를 경로 (또는 경로)로 검색하여 이와 비슷한 작업을 수행했습니다.

희망이 도움이됩니다.

크레이그

+0

안녕하세요, 저는 Asp.net 라우팅을 사용하고 모듈 NAY 아이디어를 다시 작성하지 않아도됩니다. – GibboK

+0

미안하지만 라우팅에 대한 노출이 매우 제한되어 있습니다. 해상도를 확인하는 데 관심이 있습니다. S –

1

당신은 QueryString을의 카테고리 ID를 암호화 시도 할 수 있습니다.

관련 문제