0

MVC5 응용 프로그램에서 특성 라우팅을 사용 중이므로 제대로 작동합니다. 영역을 만들고 영역 내의 컨트롤러에 속성 라우팅을 배치하면 404가 반환됩니다.컨트롤러가 컨트롤러 내부에서 작업 메서드를 실행하지 않는 특성 라우팅

영역 내부에서 속성 라우팅을 사용하려면 [RouteArea("Area Name Here")]을 사용해야하며 내 RouteConfig 클래스 내에 routes.MapMvcAttributeRoutes();을 추가해야합니다. . 나는이 모든 것을했고,이 같은 내 컨트롤러 설계 : 내가 경로를 사용하여 응용 프로그램을 실행하면

[RouteArea("Client")] 
[RoutePrefix("Client")] 
public class ClientController : Controller 
{ 
    #region Properties 
    private readonly string apiUrl = ConfigurationManager.AppSettings["apiUrl"]; 
    #endregion 

    #region Constructor 
    public ClientController() 
    { 

    } 
    #endregion 

    #region Action Methods 
    [HttpGet, Route("create")] 
    public ActionResult Index() 
    { 
     --logic here 
    } 
    #endregion 
} 

을 : http://localhost:26189/Client/create을, 나는 생성자가 아닌 인덱스 방법을 칠 수 있어요. 흥미롭게도, 내가 [HttpGet, Route("create")] 속성을 제거하고이 경로를 시도하면 http://localhost:26189/Client/Index이 인덱스 방법을 사용합니다.

나는이 링크를 통해 가고 있지만, 정확한 수정 프로그램을 찾을 수 없습니다 해요 : https://blogs.msdn.microsoft.com/webdev/2013/10/17/attribute-routing-in-asp-net-mvc-5/#route-areas

+0

난 당신이 또한 같은 ActionName 속성을 필요로 추측'[ActionName ("생성")] '인덱스 작업을 위해. – Amit

+0

@Amit - thi 속성을 추가하려했지만 행운이 없었습니다. ( –

+0

다른 것을 라우팅하는 라우팅 정의가 있습니까? – Amit

답변

0

당신은 가능성이 시동 경로에 주문 문제가있다. 확인 일들이 순서로 호출되어 있는지 확인하십시오 :

  1. AreaRegistration.RegisterAllAreas();
  2. routes.MapMvcAttributeRoutes();
  3. 모든 규칙 기반 경로
+0

시도했지만 여전히 문제를 해결할 수 없음 :( –

관련 문제