2011-11-01 2 views
1

뉴스 웹 사이트가 있습니다. 보통 매개 변수를 사용하여 뉴스 나 브라우저 카테고리를 표시합니다. 예를 들어 : 5asp.net mvc 3 뉴스 이름으로 URL 라우팅

뉴스

의 아이디입니다 지금은 URL에이 뉴스의 이름을 추가 할 - - 세부 행동이다

http://mysite.com/News/Details/5

뉴스는 컨트롤러입니다. 예를 들면 :

http://mysite.com/News/Details/5/name-of-news/ 또는 http://mysite.com/News/name-of-news/ 페이징

, 나는 또한 URL을 http://mysite.com/News/Page1

,369을 다음과 같은 내 URL 표시로 이제 내가 원하는 매개 변수를 http://mysite.com/News?page=2

를 사용

어떻게하면됩니까? 미리 감사드립니다.

+0

페이징은 일반적으로 뉴스 색인 작업에 라우팅 맵을 추가, 당신의 행동이 pagging를 들어

 ActionResult Details(string id,string newsName){ } //add a routing map routes.MapRoute( "NewsDetailsIdName", "{News}/{Details}/{id}/{newsName}", new { controller = "News", action = "Details"} ); or //If news name is unique ActionResult Details(string newsName){ } //Add a routing map routes.MapRoute( "NewsDetailsName", "{News}/{Details}/{newsName}", new { controller = "News", action = "Details"} ); 

소요 매개 변수 목록에 뉴스를 추가 (그리고 나는 또한 추천) 왜냐하면 시간이 지남에 따라 달라질 수있는 REST 요청 내 알려진 콜렉션의 필터링 된 결과를 간신히 표시하기 때문에 쿼리 매개 변수를'? page = 1 '로 사용합니다. Collection 자체는 항상 동일하므로 REST 스펙 내에서 유효합니다. –

+0

제목 변경만으로 뉴스를 이름으로 만 액세스 할 수도 있습니다. ID는 항상 정적이지만 제목이 변경되어 Google 결과가 유효하지 않게됩니다. ID + title을 사용할 때 같은 페이지 내용의 다중 세트를 구별하기 위해'META' 정식 정보를 사용하는 것이 현명합니다. –

+0

감사합니다. Emmanuel N, "/ Product/Details/id"를 사용하여 제품을 표시합니다. 나는 또한 싶다 URL에 제품의 이름을 추가하지만, MapRoute를 하나 더 추가 할 때 항상 MapRoute를 실행합니다. 뉴스. 이 문제를 어떻게 해결할 수 있습니까? @ 로버트 Koritnik : 귀하의 의견을 주셔서 감사합니다. 여기에 대한 링크가 있습니까? 나는 더 많이 알고 싶다. 감사. – Doraemon

답변

2

완료

 ActionResult Index(string page){ 
     } 
     //Add a route 
     routes.MapRoute(
      "NewsPage",            
      "{News}/{page}",       
      new { controller = "News", action = "Index"} 
     ); 
+0

감사합니다. Emmanuel N, – Doraemon