2011-09-02 8 views
0

, 나는이 다음 컨트롤러ASP.net MVC 라우팅 내 ASP.Net MVC 응용 프로그램에서 질문

  • HomeController ExController

ExController는 문자열을 사용이 방법을 가지고

  • 매개 변수 :

    public ActionResult Index(String id){.... 
    
    매개 변수 (210)

    이 페이지는 다음과 같이 성공적으로 열립니다 mysite.com/Ex/Index/my-string-value

    그러나 나는대로 매개 변수를 사용하려면 : mysite.com/Ex/my-string-value

    여기

    내 라우팅 항목입니다 : 내가 mysite.com/Ex/Index/GetParameter 대신 mysite.com/Ex/GetParameter을 입력하여 ExController에 도착 매개 변수를 보낼해야 할 일은

    routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
    
         routes.MapRoute(
          "Default", // Route name 
          "{controller}/{action}/{id}", // URL with parameters 
          new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults 
         ); 
    
         routes.MapRoute(
          "Post", 
          "{controller}/{action}/{postId}", 
          new { controller = "Ex", action = "Index", postId="" } 
          ); 
    

    . 도와주세요.

  • 답변

    2

    우선 경로를 으로 정의하고을 기본 경로로 정의해야합니다. 그렇지 않으면 기본값이 모두를 캐치합니다. 둘째 당신은 단순히이 작업을 수행 할 수 수있게된다

    routes.MapRoute(
          "Post", 
          "Ex/{postId}", 
          new { controller = "Ex", action = "Index", postId="" } 
          ); 
    

    당신은 또한 당신에게 ExController 인덱스 동작을 변경해야 www.mysite.com/Ex/GetParameter

    할에 :

    public ActionResult Index(String postId){.... 
    

    얻을 수있는 ModelBinder를 postId를 올바르게 바인딩 할 수 있습니다. 다음 차례로이 도움이 postId

    희망으로 GetParameter을 통과하는 액션 지수를 호출합니다

    !

    +0

    감사합니다. 그것은 일했다 :) –

    +1

    당신을 환영합니다! 다행히 도울 수있어 :) –