mvc3 및 RavenDB를 사용하고 있습니다. 예를 들어 /filter/{manufacturer}/{resolution}/{zoom}
: http://ravendb.net/docs/client-api/advanced/faceted-searchRavenDB는 검색 및 mvc3에서 검색 경로/필터 URL을 작성했습니다.
을 나는이 URL 패턴을 갖고 싶은 : 여기에 설명 된 바와 같이 나는, 사용자 측면 검색을 사용하여 검색을 좁힐 수있는 필터 메뉴가 /filter/canon/6
목록을 의미 모든 카메라 제조업체 캐논 A를 6 메가 픽셀 (및 모든 줌 범위).
나는이 작업을하고 있지만 URL을 생성하는 데 문제가 있습니다. 패싯 값이 URL에서 사용하기에 안전하다면 이것은 에서만 작동합니다. 모든 앰퍼샌드, 대시와 소문자로 된 공백 등을 모두 바꿉니다. 즉, 내 filtermenu 링크 및 사이트 이동 경로에 '못생긴'이름이있는 으로 끝납니다.
사용자에게 패싯 값을 표시하기위한 이름을 사용하는 방법이 있습니까? 그래서 나는 다음과 같은 URL을 생성 할 수 있습니다 : 내가 생각할 수있는
<a href="/filter/canon/">Canon USA (12)</a>
<a href="/filter/canon/6/">6 megapixels (5)</a>
하나의 솔루션은 문서 으로 필터를 저장하고 단지의 표시 이름을 검색하는 패싯 값을 검색하는 것입니다.
필터 문서는 다음과 같이 할 수 있습니다
var filter = new Filter
{
DisplayName = "Manufacturer" ,
Slug = "manufacturer" ,
Items = new List<FilterItem>
{
new FilterItem() { DisplayName = "Canon USA" , Slug = "canon" } ,
new FilterItem() { DisplayName = "Photo's & more" , Slug = "photos-and-more" }
}
} ;
이동 경로 메뉴를 구현하는 데 사용한 항목은 무엇입니까? ASP.NET MVC SiteMap 공급자? 나는 샘플을 찾을 수 없기 때문에 관심이 있습니다 ... –
사이트 맵 제공자를 사용하고 있지 않습니다. 내 경로는 대부분 선형/예측 가능하기 때문에 레이아웃 파일의 부분보기로 렌더링되는 컨트롤러의 URL 목록을 생성합니다. 사용자가 제품 페이지로 이동하면 다른 경로가 동일한 제품 페이지로 이어질 수 있으므로 tempdata를 통해 현재 경로 탐색 경로를 전달합니다. – Keesjan