2

標準のxmlサイトマップに基づくシンプルなメニューがあります。リンクをクリックすると、ビュー/ページのないコントローラーのactionresultに投稿します。URLのビュー、ページ、またはその他のWebサイトがある場合は問題がないようですが、目的のコントローラーのアクション結果に移動できないようです...そこから追加の処理を実行します戻り/リダイレクトなどの問題は、siteMapNodeで定義された基準/属性/要素から該当するコントローラーのアクション結果に到達することです。

該当するサイトマップスニペット:

<siteMapNode url="~/Home/Test" title="Test SubMenu" description="Test SubMenu" roles="*"> 
  <siteMapNode url="~/Home/TestActionResult" title="Test ActionResult" description="Test ActionResult" roles="*" />     <!-- Does not work -->
  <siteMapNode url="http://www.google.com/" title="Test ActionResult" description="Test   ActionResult" roles="*" target="_blank"/>  <!-- Works -->
</siteMapNode> 

該当するコントローラーアクション結果スニペット:

public ActionResult TestActionResult()
{
  ...
} 

該当するルートスニペット:

routes.MapRoute(
  "TestActionResult", 
  "TestActionResult", 
  new { controller = "Home", action = "TestActionResult", area = "" }, 
  new string[] { "Namespace.Controllers" }
);

私が得る唯一のエラーは、ほとんど役に立たないリソースが見つからないというエラーです。

例えば:

'/'アプリケーションのサーバーエラー。

リソースが見つかりません。説明:HTTP404。探しているリソース(またはその依存関係の1つ)が削除されたか、名前が変更されたか、一時的に使用できなくなった可能性があります。次のURLを確認し、スペルが正しいことを確認してください。

要求されたURL:/ Home / TestActionResult


バージョン情報:Microsoft .NET Frameworkバージョン:4.0.30319; ASP.NETバージョン:4.0.30319.225

提案?

前もって感謝します。

4

1 に答える 1

0

見つからない URL に一致するようにルートを変更します (つまり、TestActionResult -> Home/TestActionResult)。

routes.MapRoute(
  "TestActionResult", 
  "Home/TestActionResult", 
  new { controller = "Home", action = "TestActionResult" }
);

または、ホームコントローラーのさまざまなアクションを一致させたい場合は、ルートを次のように設定します。

routes.MapRoute(
      "HomeActions", 
      "Home/{action}", 
      new { controller = "Home", action = "TestActionResult" }
    );

ここ/Home/TestActionResultで、ホーム コントローラーの TestActionResult アクション/Home/Testに移動し、ホーム コントローラーのテスト アクションに移動します。

于 2011-08-04T16:49:43.420 に答える