4
웹 응용 프로그램에서 MVCSitemap 공급자를 사용해야하지만 동적 URL이있는 곳에서는 작동하지 않습니다.MVC Sitemap이있는 이동 경로가 하나의 수준 만 표시합니다.
부모님과 자녀가있을 수있는 카테고리 목록이 있습니다. 나는 카테고리를 클릭하면 예를 들어 는, 이동 경로는 다음과 같습니다
Home > Filter
을 나는 필터의 어린이를 클릭하면, 내가 가지고 :
는Filter > Air filter
홈 링크가 사라집니다. 나는 "에어 필터"의 어린이를 클릭하면 내가 가지고 : 등등
Air filter > air filter children
하고 있습니다. 항상 마지막 두 레벨이 표시됩니다. 첫 번째 레벨을 클릭하면 항상 홈 페이지로 돌아갑니다.
이 내 MvcSitemap에 :이 제품 컨트롤러에서 하위 카테고리 방법입니다
<mvcSiteMapNode title="Home" controller="Home" action="Index">
<mvcSiteMapNode title="Product" controller="Product" action="SubCategories" preservedRouteParameters="selected,category,id,engineId">
<mvcSiteMapNode title="Details" controller="Product" action="ProductDetails" preservedRouteParameters="supplierName,code,name,prodId,-1"/>
</mvcSiteMapNode>
</mvcSiteMapNode>
:
[MvcSiteMapNode(Title = "Article", ParentKey = "SubCategories")]
[Route("{selected}-{category}-{id}-{engineId}")]
public ActionResult SubCategories(string selected, string category, int id, string engineId)
{
...........................
SiteMaps.Current.CurrentNode.Title = categoryName;
if(categoryRepository.GetCategoryByID(id).ParentId.HasValue)
{
int parentId = categoryRepository.GetCategoryByID(id).ParentId.Value;
string parentName = categoryRepository.GetCategoryByID(parentId).Name;
SiteMaps.Current.CurrentNode.ParentNode.RouteValues["id"] = id;
SiteMaps.Current.CurrentNode.ParentNode.Title = parentName;
}
당신이 좀 도와 주시겠습니까, 내가 잘못 여기서 뭐하는거야? 웹에서 모든 설명을 확인한 결과 여러 가지 방법으로 시도했지만 어느 누구도이 문제를 해결하지 못했습니다.
감사 :
첫 번째
, 나는 사이트 맵을 가지고있다. 이것은 내가 원하는 것을 정확하게는 아니지만, 나는 그것을 나의 예에서 사용하려고 노력할 것이다. – Orsi