0

私は何か間違ったことをしています、それは私が知っていることです。:) ページに単純なブレッドクラムを表示しようとしています。私はこれをビューに持っています:

@if (ViewContext.RouteData.Values["Action"].ToString() == "Index")
{
    <li>
        // This displays "Matter"
        @ViewContext.RouteData.Values["Controller"]
    </li>
}
else
{  
    <li>
        // This displays a hyperlink "Matter", 
        // but the Href goes to "MyApp/Matter/Matter"
        <a href="@ViewContext.RouteData.Values["Controller"].ToString()">
            @ViewContext.RouteData.Values["Controller"]
        </a>
    </li>
}

上記のシナリオでは、Route.cs ファイルを「MatterController」の「Index」アクションに対応する「MyApp/Matter」に設定しています。

リンクをクリックすると、「MyApp/Matter/Matter」に移動しますが、機能しません。

これを機能させる方法について何か考えはありますか?

4

1 に答える 1

0

アンカー タグに相対パスを設定しています。次のように評価されています。

  <a href="Matter">Matter</a>

その (Matter) は現在の URL に追加されます。この場合、「MyApp/Matter」としか想定できません。結果は「MyApp/Matter/Matter」です。

絶対 URL またはより完全な相対 URL を指定する必要があります -- この場合は ../Matter が機能します。

それ以上に、あなたが何をしようとしているのかについてもう少し理解しないと、私はあなたを助けることはできません.

  1. ブレッドクラムでそれらをどこに移動しますか? 彼らが見ているものに関連してパンくずリストには何がありますか?
  2. あなたの例の MyApp はアプリを含むディレクトリですか、それともアプリケーション内の領域ですか?
  3. Matter がコントローラーであることしかわかりませんが、アクションは何ですか? リンクが表示されている場合は、現在 Index アクションを参照していません。
于 2013-03-21T02:41:02.907 に答える