2011-04-28 4 views
0

내가 달성하고자하는 다음 (와 ASP.NET MVC 3) :ASP.NET MVC 영역 또는 정의 된 경로?

다음 조치로 "응용 프로그램"라는 컨트롤러 :

  • /응용 프로그램/내
  • /응용 프로그램/기관
  • 정말 일부 하위 행동, 예를 들어 원하는 마지막 작업 내에서

새로운

  • /응용 프로그램/:

    을3210
    • /응용 프로그램/새/제품
    • /응용 프로그램/새/관세

    내가 렌더링해야 뷰 어떤 말을 매개 변수의 일종을 위해 새로운() 액션을 쓸 수 있습니다 (즉, 제품 또는 관세)하지만 조금 더러운 느낌.

    내가 정말로 원하는 것은 제품 및 관세에 대한 별도의 조치 방법입니다.

    이 문제를 해결하는 가장 좋은 방법은 무엇입니까?

    나는 지역을 사용할 수 있다고 생각하지만, 이것은 내가 원하는 것을 과잉 보인다 - 맞춤 경로를 작성하기위한 해결책인가?

    감사합니다. Sam

  • 답변

    2

    지역을 사용할 수도 있지만이 작은 금액의 경우 나는 아마도 과잉이라고 동의합니다. 나는 새로운 액션을 매개 변수로 가져 오는 것이 당신이 필요로하는 것에 대해 훌륭하다고 말한다. 더 많은 정보를 전달하고자한다면 더 복잡해 질 수 있지만 아직도 할 수 있습니다. 코드를 깨끗하게 유지하려면 별도의 개인 메소드에서 모든 복잡한 작업을 수행 할 수 있습니다. 맞춤 경로 방식으로 하 그러나

    (뿐만 아니라 별도의 컨트롤러) ...

    Global.asax.cs

    public static void RegisterRoutes(RouteCollection routes) 
    { 
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
    
        routes.MapRoute("newControllerRoute", 
            "apps/new/{action}", 
            new {controller = "NewApps"}); 
    
        routes.MapRoute(
         "Default", // Route name 
         "{controller}/{action}/{id}", // URL with parameters 
         new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults 
        ); 
    
    } 
    

    다음은 컨트롤러를 추가 (NewAppsController).

    public class NewAppsController : Controller 
        { 
         public ActionResult Product() 
         { 
          /* used as example */ 
          return Content("NewApps controller - Product"); 
         } 
    
         public ActionResult Tariff() 
         { 
          /* used as example */ 
          return Content("NewApps controller - Tariff"); 
         } 
        } 
    

    희망이 있습니다.

    +0

    게시자가 별도의 컨트롤러 접근 방식과 맞춤 경로를 사용하기로 결정했습니다. 모델을 앞뒤로 움직여이 단계에서 멋지고 깨끗하게 유지하고 싶다. –

    2

    추가 할 수있는 두 가지 기능이 있다면 컨트롤러에서 두 가지 별개의 동작입니다. 그것은 당신이 URL 스키마를 제어하고 싶어하는 것처럼 들리므로 일부 정렬 사용자 지정 라우팅이 대답이라고 생각합니다.

    왜 관세 및 제품에 별도의 컨트롤러가 필요합니까? 그러면 자연스러운 URL 스키마가 생성됩니다.

    +0

    관세 및 제품 조치는 새로운 앱을 만드는 과정의 단계이므로 해당 컨트롤러에 대한 별도의 컨트롤러가 잘못 표시됩니다. –