ASP.NET MVC 라우팅 : 쿼리 작업을 한 번의 작업으로, 다른 작업없이
다음 경로가 필요합니다.example.com/products
제품 범주 페이지 (예 : 자동차, 트럭, 버스, 자전거)
컨트롤러 = Products
, 동작 = Categories()
example.com/products?a=1&b=2
인덱스로 이동합니다. 특정 카테고리 (예 : Ford, Honda, Chevy)의 모든 제품보기
controller = Products
, action = Index(string a, string b)
경로는 쿼리 문자열에서만 다르며 MVC는 "?"다음에 나오는 모든 내용을 무시합니다. 따라서 물론 첫 번째 규칙 하나만 적용됩니다.
어떻게 구별합니까?
편집 : 다르게 명시된, 나는 두 경로 싶어요. 경로에서 쿼리 문자열을 사용할 수 있습니까? 아니면 MVC가이를 무시합니까? 그것을 해킹하거나 사용자 지정 바인딩과 사용자 지정 유효성 검사를 할 수있는 것과 같은 일종의 사용자 지정 라우팅 체계를 사용하는 방법이 있습니까?
& b가 설정된 경우 올바른보기를 반환하거나 그렇지 않은 경우 색인을 반환 할 수 있습니다. URL을 다음과 같이 구분하지 않는 이유는 무엇입니까? 'example.com/products' 'example.com/products/a/b' 즉, 왜 'a'와'b '를 쿼리 매개 변수로 사용 하시겠습니까? URL의 일부가되는 대신에? 그것들을 URL의 일부로 만들면 경로는 간단합니다 : 복잡한 경로를 넣으십시오 ('a'와'b'가 먼저 필요함) 그리고 덜 복잡한 경로는 초입니다. – Cymen
고맙지 만 리소스 인 경로 자체에서 일시적인 데이터를 인코딩하기 때문에 우리가하는 일이 아닙니다. 이는 데이터를 적절히 포맷하는 쿼리 문자열의 목적입니다. 당신의 첫 번째 제안까지, 네, 우리는 모든 것을 하나의 액션 메소드에 집어 넣고 어떤 뷰를 리턴 할 것인지를 결정할 수 있습니다 -하지만 그때 바보처럼 보이는 내 자신의 라우팅을하고 있습니다. 나를. – mvcstudent
더 많은 토론이 stackoverflow에 있습니다. 이것은 적절할 수 있습니다 : http://stackoverflow.com/questions/968904/asp-net-mvc-url-routing-vs-querystring – Cymen