2011-03-10 2 views
3

나는 asp.net MVC 프로젝트를 가지고 있는데, 여기에 몇 가지 맞춤 경로를 정의해야한다.MVC 특수 라우팅

12-i-am-post 

내가 postid/postname 같은 일을하는 방법을 알고 : 당신은 워드 프레스에 게시물 보는 것과 유사 경로의 형식은 postid-postname의입니다

12/i-am-post. 

을하지만 어떻게 내가 그 경로를 만들 수 있죠 콤바인

mywebsite.com/12-postname-is-her 

답변

3
routes.MapRoute(
    "PostRoute", // Route name 
    "{controller}/{id}-{postName}", // URL with parameters 
    new { controller = "Home", action = "Index", id = UrlParameter.Optional, postName = UrlParameter.Optional } // Parameter defaults 
); 


public ActionResult Index(int id, string postName) 
{ 
    return View(); 
} 

이 추적을 위해 일해야 : 같은 두, ing 요청 http://localhost/Post/1-MyPostName

0

하이픈이 여러 개인 경우 구분 기호/구분 기호로 사용할 수 없으므로 하이픈은 항상 첫 번째 항목과 일치하지 않는 것이 좋습니다. 가장 좋은 방법은 catchall {*path}을 실행하고 컨트롤러의 값을 구문 분석하는 것입니다.

+0

무엇이 잘못 되었나요? ID는 언제나 먼저오고 이름은 나중에 나오고 posname은 ID가 고유 할 때 상관없이 게시물을 식별하는 데 사용할 수 있습니다. –