2013-12-17 4 views
0

ASP.NET MVC를 시작했지만 어디에서이 질문을 시작해야할지 모르겠습니다.ASP.NET MVC 시작하기 라우팅

기본 응용 프로그램을 만들었으며 EventModel, EventController 및 일련의 기본 이벤트보기를 만들었습니다. 그것은 모두 올바르게 작동합니다. -> 목록 모든 이벤트, 종류의 도메인과 같은/이벤트가 기본적으로 수행

  • 도메인/이벤트/3

    1. 도메인/이벤트 :

      는 그러나, 나는 다음과 같은 방법으로 라우팅 작업을 만들고 싶어 -> 도메인/세부 정보/3이 기본적으로하는 것처럼 특정 이벤트 (ID 3)를 표시합니다.

    2. 도메인/이벤트/cool-event -> 이벤트 모델의 속성 인 'slug'를 기반으로 특정 이벤트를 표시합니다.
    3. 도메인/이벤트/수정/3 -> 이벤트를 편집합니다.

    나는 라우터를 가지고 놀고 있었고, 내가 원하는 것처럼 행동 할 수 없었다. 위의 논리를 쉽게 구현할 수 있습니까?

  • +1

    하면 [속성 라우팅 (확인이 http://blogs.msdn.com/b/webdev/archive/2013/10/17 /attribute-routing-in-asp-net-mvc-5.aspx) 아직? –

    +0

    그것은 쉬워야합니다, 예 - 표준 시나리오입니다. 모든 경로는 쉽게 구별 할 수 있습니다 (숫자 확인에 따라 2/3). – McGarnagle

    답변

    1

    가이 같은 (테스트되지 않은)이 될 수 Attribute Routing 사용 :

    public class EventController : Controller 
    { 
        //1. domain/events -> lists all events, sort of like domain/event does by default 
        [Route("events")] 
        public ActionResult Index() 
        { 
         //TODO: Add Action Code 
         return View(); 
        } 
    
        //2. domain/event/3 -> show a specific event (ID of 3), just like domain/details/3 does by default. 
        [Route("event/id")] 
        public ActionResult Details(int id) 
        { 
         //TODO: Add Action Code 
         return View(); 
        } 
    
        //3. domain/event/cool-event -> show a specific event based on it's 'slug', which is a property of the EventModel 
        [Route("event/{slug?}")] 
        public ActionResult ViewEvent(string slug) 
        { 
         //TODO: Add Action Code 
         return View(); 
        } 
    
        //4. domain/event/edit/3 -> edits the event. 
        [Route("event/edit/id")] 
        public ActionResult Edit(int id) 
        { 
         //TODO: Add Action Code 
         return View(); 
        } 
    } 
    
    +1

    ooo 속성 라우팅이 반짝입니다! – William