[원문보기]
URL Routing 이란 무엇인가? (What is URL Routing?)
URL 라우팅은 ASP.NET 3.5 SP 1 과 함께소개되었고 ASP.NET MVC 응용프로그램에서 이미 사용된 "web 2.0" 에 적합한 기능이다.
URL 라우팅은 물리적 파일경로에 맵핑되지 않은 요청을 받아 들일수 있도록 응용프로그램을 설정해야 한다.
사용자에게 의미있고 검색엔진에 최적화 (search-engine optimization, SEO) 된 URL 들을 정의하기 위해서 라우팅을 사용할 수 있다.
예를 들어, 제품 분류들을 보여주는 페이지를 표현하기 위한 일반적인 URL 은
http://www.mysite.com/products.aspx?category=software
와 같이 표현이 된다면 ASP.NET 4 에 있는 URL 라우팅 엔진을 사용한다면
http://www.mysite.com/products/software
와 같이 나타낼 수 있다.
ASP.NET 4.0 를 사용하여 URL들은 ASP.NET MVC 컨트롤러 클래스들과 ASP.NET 웹폼 페이지들에 맵핑될 수 있다.
ASP.NET MVC에서 URL 맵핑하기 (Mapping URLs using ASP.NET MVC)
ASP.NET 3.5 SP1 에서 소개된 URL 라우팅엔진은 요청되는 URL을 다루는 데 강력한 방법을 제공한다.
일반적으로, 특정 URL형식에 대하여 핸들러와 연결시키기 위해서 응용프로그램 startup 부분에 코드를 작성한다.
아래 코드는 /products/software URL 를 "Browse" 액션 메소드를 가진 "Products" 컨트롤러로 맵핑하기 위해서 ASP.NET MVC를 사용하는 방법의 예이다.
MapRoute() 도움 메소드의 첫 "products-browse" 파라미터는 라우트에 대한 대표이름 이다.
두번째 파라미터인 "products/{category}" 파라미터는 /products/software URL 을 맵핑시키기 위한 URL필터이다. 이 파라미터는 Products 컨트롤러의 Browse 액션메소드로 보내줄 것이다.
ASP.NET 웹폼에서 URL 맵핑하기 (Mapping URLs using ASP.NET Web Forms)
ASP.NET 4.0 에서 ASP.NET MVC 컨트롤러와 같이 ASP.NET 웹폼에서 URL 라우팅엔진을 사용할 수 있다.
아래 예는 MapPageRoute 도움 클래스를 사요하여 /products/software URL를 응용프로그램의 루트 디렉토리에 "Products.aspx" 로 맵핑해준다.
MapPageRoute() 함수의 첫번째, 두번째 파라미터는 MVC 의 MapRoute()의 파라미터와 같다.
세번째 파라미터는 컨트롤러 클래스 대신에 URL을 Products.aspx 페이지로 보내준다.
또한 MVC와 같이 선택적으로 다수의 파라미터를 추가하여 라우트 제한, 파라미터에 대한 기본값 설정할 수 있다.
Products.aspx 페이지 내에서 Page.RouteData 속성을 사용하여 /products/{category} URL 필터에 맵핑된 "category" 파라미터 값을 가져와 제품 분류를 보여주기 위하여 데이터 바인딩 할 수 있다.
또, 위에처럼 코드로 데이터바인딩 하는것 외에 ASP.NET 데이터소스 컨트롤에 있는 새로운 <asp:routeparameter> 를 사용하여 라우트 값을 바인딩할 수 있다.
예를 들어, 아래처럼 select 문의 @category 파라미터를 바인딩하기 위해서<asp:routeparameter> 선언을 사용한다.
ASP.NET내에서 URL 가져오기 (Retrieving URLs within an ASP.NET Web Form)
ASP.NET 의 라우팅 엔진은 유입되는 URL를 핸들러로 연결시키기 위해서 사용되거나, 같은 맵핑제한 논리를 사용하여 출력 URL 를 프로그램적으로 생성하는데 사용될 수 있다.
예를 들어, 위의 예에서 우리가 /products/{category} URL를 맵핑할 때, 우리는 "products-brows" 라는 이름을 주었다. 이는 URL 라우팅 시스템을 내의 라우트 검색하기 위해 새로운 Page.GetRouteUrl() 도움 함수를 사용할 수 있다. 그리고 반대로 맵핑을 하는 실제 URL를 가져올 수 도 있다.
예로, 아래 코드는 "/products/software" 의 URL 값을 가져온다.
코드 비하인드 파일 또는 .aspx 마크업 파일내에서 위의 도움 메소드에 접근할 수 있다.
이 외에 Response.RedirectToRoute() 함수가 있는데 이 함수는 한 라우트로 리다이렉트 할 수 있게한다.
포스트백 다루는 상황 (Handling PostBack Scenarios)
ASP.NET 4.0 의 URL 라우팅은 포스트백도 지원한다. <form runat="server"> 컨트롤은 자동적으로 같은 URL로 가게 되어있다. 예를 들어, 만일 /products/software URL로 접근을 한다면 서버부분의 <form runat="server"> 컨트롤은 <form action="/products/software">HTML 요소로 렌더링하여 클라이언트로 되돌려준다.
이는 깔끔하고 검색엔진 친화적이며 웹폼과 포스트백 상황에서 쉬운 URL를 주게한다.
'개발관련 > 기타' 카테고리의 다른 글
| 유용한 프리웨어 (0) | 2010/11/02 |
|---|---|
| 무료 flv-player (0) | 2010/10/26 |
| VS 2010 and .NET 4 Series - 6. URL Routing with ASP.NET 4 Web Forms (0) | 2010/08/20 |
| VS 2010 and .NET 4 Series - 5. Auto-Start ASP.NET Applications (0) | 2010/08/16 |
| VS 2010 and .NET 4 Series - 4. Multi-Targeting Support (0) | 2010/08/13 |
| VS 2010 and .NET 4 Series - 3. Visual Studio 2010 Extension Manager (0) | 2010/08/11 |



댓글을 달아 주세요