2014-01-09 2 views
3

웹 응용 프로그램에서 여러 동작에 대해 여러 개의 라우트 컨트롤이 있습니다. route.config에서 여러 경로를 주문하는 방법은 무엇입니까?

이 행동

이 하나가 action 이름을 통해 전화를

routes.MapRoute(
       name: "ResumeRoute", 
       url: "{action}/{PublicResume}", 
       defaults: new { controller = "Business", action = "PublicResume" } 
       ); 

를 파라미터 유효 그리고 모든 기본 작업에 대해 이미

를 default-에 의해 하나 개의 경로 제어 할 수있다 파라미터 유효

routes.MapRoute(
      name: "SpecificRoute", 
      url: "{BusinessName}", 
      defaults: new { controller = "Business", action = "OpenPage" } 
       ); 

에 의해 호출된다

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

로컬 IIS 서버에이 응용 프로그램을 배포했습니다.

이제 route.config 파일에 문제가 발생했습니다. 적절한 방법으로 경로를 사용하지 않았을 수 있습니다.

이 응용 프로그램은 모든 동작에 대해 resource not found error을 표시하며 때로는 솔루션을 청소 한 후에 작동합니다.

어떻게 사용 방식을 바꾸지 않고 동작을 사용할 수 있습니까?

은 그 위에 두 개의 사용자 정의 경로를 추가 한 후 (resource not found를) 찾을 수 없습니다

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.Http; 
using System.Web.Mvc; 
using System.Web.Routing; 

namespace MvcApplication8 { 
    public class RouteConfig { 
     public static void RegisterRoutes(RouteCollection routes) { 
      routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
      routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?favicon.ico(/.*)?" }); 

      routes.MapRoute(
      name: "SpecificRoute", 
      url: "{BusinessName}", 
      defaults: new { controller = "Business", action = "OpenPage" } 
       ); 

       routes.MapRoute(
       name: "ResumeRoute", 
       url: "{action}/{PublicResume}", 
       defaults: new { controller = "Business", action = "PublicResume" } 
       ); 

      routes.MapHttpRoute(
       name: "DefaultApi", 
       routeTemplate: "api/{controller}/{id}", 
       defaults: new { id = RouteParameter.Optional } 
      ); 

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



     } 
    } 
} 

편집 -

기본 경로 내 route.config 파일 -입니다.

답변

1

나는 당신이 당신의 기본 경로에 오타가 있다고 생각 : 아이디 전에 *이 있습니다

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

, 그것은 {id} 대신 {*id}

+0

거기 기본적으로했다 아니해야한다. 맞춤 경로를 삭제할 때 유의하십시오. 그 자원 오류는 결코 오지 않습니다. 그러나 나는 둘 다 정의 된 경로가 필요합니다. – Manoj

+0

죄송합니다. mvc url의 기본값 인 "{controller}/{action}/{id}"이 (가) "{controller}/{action}/{* id}"URL이 아닙니다. – hutchonoid

+0

나는 그것이 왜 있는지 몰라. 네, 기본 경로로 맞았습니다. 내 경로 파일이이 오타를 제외하고 올바른 것입니까? – Manoj

관련 문제