0

MVC 4 を使用してサイトマップを開発しているときに、アプリケーションにナビゲートするパラメーターが 3 つ以上ある状況があります。

現在の状況:
1. インデックス > ページ 1 (パラメーター A、パラメーター B を使用) > ページ 2 (パラメーター A、パラメーター B、パラメーター C、パラメーター D を使用)

インデックスからページ 1、ページ 2 に移動してもまったく問題はありませんが
、ページ 2 からページ 1 に戻ると、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)
{
      ....
}

私のコードで何が間違っていたのか分かりますか? ありがとうございました。

4

1 に答える 1

0

MVC エリア機能をご覧ください。サイトマップは ASP.Net の機能です。MVC では、Area を使用してサイトマップを置き換えることができます。プロジェクトに複数のアールがある場合、独自のルーティングとパラメーターを定義できます。MVC でエリアを使用する方法については、この記事をご覧ください。お役に立てれば。

于 2013-08-30T09:50:41.833 に答える