2009-04-15 2 views
0

내 웹 응용 프로그램에서. 이 경로를 설정하고 싶습니다.C# asp.net mvc 1.0 routing

/document/quality/index 
/document/general/index 

/document/quality/detail/[id] 
/document/general/detail/[id] 

두 가지 종류의 문서를 볼 수 있습니다 : 일반 및 품질. 내 global.asax 파일에서이를 설정하는 가장 좋은 방법은 무엇입니까? 나는 다음과 같은 시도,하지만 난 그것을 작동되지 않습니다

routes.MapRoute(
    "QualityDocument", 
    "Document/Quality/{action}/{id}", 
    new { controller = "Document", action="Index", id= ""} 
    ); 

routes.MapRoute(
    "GeneralDocument", 
    "Document/General/{action}/{id}", 
    new { controller = "Document", action = "Index", id = "" } 
    ); 

routes.MapRoute(
    "Default",            // Route name 
    "{controller}/{action}/{id}",       // URL with parameters 
    new { controller = "Home", action = "Index", id = "" } // Parameter defaults 
); 

편집

내가 지금 일하고 있습니다,하지만 난 작업을 변경할 때 = ""내 asax에서이 아무튼 파일 't은 더 이상 작동 :

의 Global.asax를 :

routes.MapRoute(
    "GeneralDocument", 
    "Document/General/{action}/{id}", 
    new { controller = "Document", action = "blaat", id = "" } 
    ); 

DocumentController :

public void blaat(int? id) 
{ 
    Response.Write("algemeen"); 
    // return View(); 
} 

이제 자원을 찾을 수 없습니다. 오류가 발생합니다. 그러나 blaat 대신 색인을 사용하면 효과가 있습니다. 어째서?

routes.MapRoute(
    "QualityDocument", 
    "Document/Quality/index", 
    new { controller = "Document", action="Index" } 
); 

routes.MapRoute(
    "Default",            // Route name 
    "Document/Quality/details/{id}",        // URL with parameters 
    new { controller = "Document", action = "Details", id = "" } // Parameter defaults 
); 

답변

1

그냥 "문서"로 경로를 앞에 다음과 같은 기본값을 설정할 수 있어야한다 :

routes.MapRoute("DocumentView", 
       "Document/{controller}/{action}/{id}", 
       new { controller = "General", action="Index", id = "" } 
      ); 

완전히 정의해야 할 라우팅과 기억! 경로를 설정할 때. 예상치 못한 경로를 통해 알려주지 마세요. D

MIX 에서 Scott Hanselman 프리젠 테이션을 확인하고 좋은 조언을 찾아보세요.

http://www.hanselman.com/blog/Mix09FirstHalfRollupAndSessionVideos.aspx

0

이보십시오.

routes.MapRoute(
    "QualityDocument", 
    "{controller}/Quality/{action}/{id}", 
    new { controller = "Document", action="Index", id= ""}, 
    new { controller = "Document" } 
); 
routes.MapRoute(
    "GeneralDocument", 
    "{controller}/General/{action}/{id}", 
    new { controller = "Document", action = "Index", id = "" }, 
    new { controller = "Document" } ); 
1

은 아마도 컨트롤러 속성에 추가 할 수 있지만 문서 컨트롤러로이를 제한 :

+0

컨트롤러 속성에 무엇을 추가 하시겠습니까? 이게 어떻게 작동합니까? – Martijn

+0

난 그냥 당신의 패턴에 넣어 {컨트롤러} 뜻. 나는 그것이 당신의 패턴으로 나타나지 않았기 때문에 컨트롤러 값을 가져올 수 없는지 궁금해하고있었습니다. – tvanfosson

+0

조금 생각한 후에 두 가지를 구별하는 방법을 알기 위해 문서 유형 속성을 가져올 필요가 없습니까? 이렇게하려면 사용자 지정 경로 처리기가 올바르게 수행되어야 할 수 있습니다. – tvanfosson