2017-04-18 4 views
3

나는 이런 식으로하려고합니다.ASP에서 사용자 지정 경로를 만드는 방법 MVC

MyUrl.com/ComicBooks/{NameOfAComicBook}

나는 RouteConfig.cs 주위에 엉망하지만이에 완전히 새로운 해요, 그래서 문제가 있습니다. NameOfAComicBook은 필수 매개 변수입니다.

public class RouteConfig 
{ 
    public static void RegisterRoutes(RouteCollection routes) 
    { 
     routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 


     routes.MapMvcAttributeRoutes(); 


     routes.MapRoute("ComicBookRoute", 
          "{controller}/ComicBooks/{PermaLinkName}", 
          new { controller = "Home", action = "ShowComicBook" } 
          ); 

     routes.MapRoute(
      name: "Default", 
      url: "{controller}/{action}/{id}", 
      defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
     ); 

    } 
} 

HomeController.cs

public ActionResult ShowComicBook(string PermaLinkName) 
{ 


    // i have a breakpoint here that I can't hit 


    return View(); 
} 
+0

'NameOfAComicBook'은 선택 매개 변수입니까, 필수 매개 변수입니까? 자세한 내용을 포함하십시오. –

+0

@ TetsuyaYamamoto 내 질문을 업데이트했습니다. (필수) – 0x4f3759df

+0

시도한 것을 포함하여 경로를 보여주고 작동하지 않는 것을 설명하십시오. –

답변

2

은 그 속성 라우팅도 활성화되어 나타났습니다.

routes.MapMvcAttributeRoutes(); 

또한 컨트롤러에서 직접 경로를 설정할 수도 있습니다.

[RoutePrefix("ComicBooks")] 
public class ComicBooksController : Controller {  
    [HttpGet] 
    [Route("{PermaLinkName}")] //Matches GET ComicBooks/Spiderman 
    public ActionResult ShowComicBook(string PermaLinkName){ 
     //...get comic book based on name 
     return View(); //eventually include model with view 
    } 
} 
+0

My ComicBookRoute에 Controller = "Home"이있어서 예상 했었습니다. HomeController에서 처리 할 수 ​​있습니다. – 0x4f3759df