需要帮助才能使用SiteMap MVC 4

时间:2013-08-30 09:34:19

标签: asp.net-mvc-4 sitemap

在使用MVC 4开发站点地图时,我的情况是我的应用程序有超过3个参数可供导航。

现状:
1.索引>第1页(使用Param A,Param B)>第2页(使用Param A,Param B,Param C,Param D)

当我从索引导航到第1页到第2页时,根本没有问题,
但是当我从第2页导航到第1页时,它导致了错误,因为它丢失了 ONE PARAMETER(这种情况它失去了Param B)。

以下是我的示例代码:

在Sitemap配置

<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)
{
      ....
}

你知道我的代码有什么问题吗?谢谢。

1 个答案:

答案 0 :(得分:0)

查看MVC区域功能。 Sitemap是一个ASP.Net功能。在MVC中,您可以使用Area替换sitemap。虽然项目中有多个,但您可以定义自己的路由和参数。看看this article如何在MVC中使用区域。希望这会有所帮助。