@if (Url.Action() == Url.Action("index", "home")) {
<text>
//some js code conditionally rendered.
alert('test'); //Only should output, if current urls is home/index
</text>
}
私はこの問題に直面します。既定のルートの場合、特定のビューに対して複数のURLが存在します。デフォルト由来するコントローラとアクション - は、例えば、ホーム/インデックスは、要求、asp.net MVC生成URLの等価性を確認
- /照合します。
- ホーム/インデックス
私は平等をチェックするUrl.Action()を使用してみました。しかし、チェックの成功または失敗はリクエストされたURLに依存します。つまり、 "\"(アプリのルート)を要求する場合は、evaluateをtrueにチェックします。 "home \ index"を要求すると、checkはfalseと評価されます。 Url.Action()は "\"と評価されます。
デフォルト経路でいくつかのmvc urlで現在のビューURLを確認する信頼性の高い方法はありますか?
[リクエストのURLがルートテーブルにあるかどうかをテストする](https://stackoverflow.com/a/37215782/181087)を参照してください。同等のURLをテストすることは信頼できません。代わりに、URLを生成するルートビジネスロジックを実行するか、着信ルートをテストして、ヌル以外の応答があるかどうかを確認する必要があります。 – NightOwl888