2013-08-30 44 views
0

使用MVC 4開發網站地圖時,我遇到了一些情況,我的應用程序有超過3個參數可以導航。需要幫助使用SiteMap MVC 4

現狀:
1.索引>第1頁(配帕拉姆庫馬拉A,帕拉姆B)>第2頁(配帕拉姆庫馬拉A,帕拉姆B,帕拉姆C,帕拉姆d)

當我有從索引導航到第1頁到第2頁沒有任何問題,但是我從第2頁導航回第1頁時,它導致錯誤,因爲它丟失了
一個參數(這種情況下它失去了參數B)。

這裏是我的示例代碼:

在地圖配置

<mvcSiteMapNode title="Home" controller="Home" action="Index"> 
    <mvcSiteMapNode title="Administration" controller="Administrative" action="Index"> 
    <mvcSiteMapNode title="Maintain Methodology Phases" controller="Common/MethodologyPhase" action="Index" key="MethodologyPhase" /> 
    </mvcSiteMapNode> 
</mvcSiteMapNode> 

在控制器級別,它看上去像(第1頁):

[Lib.Authorization(ModuleId = "Admin")] 
[MvcSiteMapNode(Title = "Edit Phase", ParentKey = "MethodologyPhase", PreservedRouteParameters = "id,PhaseCode", Key = "EditPhase")] 
public ActionResult EditPhase(int id, string PhaseCode) 
{ 
     ...... 
} 

控制器第2頁,這是看起來像這樣:

[Lib.Authorization(ModuleId = "Admin")] 
[MvcSiteMapNode(Title = "Create Sub Phase", ParentKey = "EditPhase", PreservedRouteParameters = "id,PCode,Pdesc,SPCode")] 
public ActionResult EditSubPhase(int id, string PCode, string Pdesc, string SPCode) 
{ 
     .... 
} 

你知道我的代碼有什麼問題嗎?謝謝。

回答

0

看看MVC區域功能。 Sitemap是一個ASP.Net特性。在MVC中,您可以使用Area來替換sitemap。在您的項目中有多個ares時,您可以定義自己的路由和參數。看看如何在MVC中使用區域this article。希望這可以幫助。