在使用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)
{
....
}
你知道我的代码有什么问题吗?谢谢。
答案 0 :(得分:0)
查看MVC区域功能。 Sitemap是一个ASP.Net功能。在MVC中,您可以使用Area替换sitemap。虽然项目中有多个,但您可以定义自己的路由和参数。看看this article如何在MVC中使用区域。希望这会有所帮助。