2016-06-27 3 views
2

asp.net 코어의 경로와 관련하여 많은 블로그와 질문을 읽을 수 있지만 비슷한 것을 언급하지 않은 사람은 없습니다. 제품 리뷰는 같은 ​​자신의 ID 이상의 중첩 된 경로가옵니다ASP.net 코어 경로/prod/1/review/1

/products/1/reviews/1 

: 내 경로가 같이 할 몇 가지 조건에서

/products/1/images/1/comments/1 

있는 방법이 내가 할 수 있나요

app.UseMvc(routes => 
{ 
    routes.MapRoute(
     name: "default", 
     template: "{controller=Home}/{action=Index}/{id?}"); 
}); 
+1

@ user3378165 : 게시물을 수정하는 경우 올바른 태그를 사용하십시오. 질문은 asp.net-core 및 asp.net-core-mvc에 관한 것입니다. 레거시 ASP.NET MVC 프레임 워크 (MVC1-5) – Tseng

+0

에 대한 태그 인 asp.net-mvc이 아닙니다. @Tseng, 의견을 보내 주셔서 감사합니다. 그 차이점을 설명해 주시겠습니까? – user3378165

+2

@user3378165 : https://docs.asp.net/en/latest/conceptual-overview/aspnet.html 요약하면 : 레거시 ASP.NET 및 ASP.NET MVC와 호환되지 않는 완전히 새로운 프레임 워크입니다. – Tseng

답변

2

당신은 ASP.NET 및 ASP.NET 코어의 경로 형식과 차이가 없습니다 특성 기반 라우팅

[Route("[conroller]/[action]")] 
public class ImagesController 
{ 
    [HttpGet("/[controller]/{productId:int}/images/{imageId:int}/comments/{commentId:int}")] 
    public IActionResult GetComments(int productId, int imageId, int commentId) 
    { 
    } 
} 
+1

OP는 그의 새는 배를 닦는 해결책을 요구했습니다. 당신은 솔루션 "그냥 딩기를 사용하여"처방했다. 물론, 당신은 * 속성 라우팅을 사용할 수 있지만, 문제의 해결책이 아니라 다른 포럼으로 옮깁니다. – NightOwl888

+0

ASP.NET 코어에서 라우팅하는 것이 좋습니다. "default route mapping"에는 몇 가지 문제가 있습니다. 특히 라우트 또는 선택적 매개 변수 내에서 컨트롤러 및 동작 매개 변수를 모두 사용하는 경우. 어떤 속성 기반 라우팅이'products/{productId : int}/comments/{id : int '와 같이 하드 코드 된 것처럼 [컨트롤러]와 [액션] 토큰을 실제 이름으로 바꾸고 루트를 발견하고 등록 할 때 }'컨트롤러/액션의 이름을 바꿀 때 업데이트 됨 – Tseng

+1

규칙 기반 라우팅에는 "문제"가 없습니다. 대부분의 사람들이 어떻게 동작 하는지를 고민하는 것 이외에는 작동하지 않습니다. 문제의 사실은, 결국 속성 라우팅은 모든 경로가 사용하는 것과 동일한 'IRouter' 인터페이스를 사용한다는 것입니다. 속성 라우팅은 컨벤션 기반 라우팅이 수행 할 수있는 작업의 제한된 일부 * 일 뿐이며, 이는 일부 사람들에게는 더 편리하지만 다른 사람들에게는 범위가 너무 제한적입니다. 컨벤션 기반 라우팅에 대한 이해가 부족하기 때문에 속성 라우팅을 "수정"으로 표시하는 것은 잘못된 것입니다. – NightOwl888

2
routes.MapRoute(
    name: "Products", 
    template: "products/{productId}/{action?}/{commentId?}", 
    defaults: new { controller = "Products", action = "Index" }); 
: 기본처럼 그것을 위해 템플릿 경로를 정의

https://docs.asp.net/en/latest/fundamentals/routing.html - ASP.NET 코어에 라우팅는

1

를 사용할 수 있습니다.

당신이 하나를 확인할 수 있습니다 ASP.NET Routing

이 당신의 목표를 달성하기 위해, 당신이 할 일은 기본 경로의 TOP ON 경로 을 정의합니다.