1

私のプロジェクトは、プロジェクト URL 別名「localhost/AppName/」を使用するように構成されており、特定のページなどはありません。すべて正常に動作しますが、ユーザーが最後のスラッシュを削除すると、「AppName」を無視するため、href が機能しなくなります。たとえば、Books/Index というアクションがある場合、ユーザーが最後のスラッシュ「localhost/AppName」を削除して Enter キーを押し、リンクをクリックして Books/Index に移動すると、フル パスは「 localhost/Books/Index" は機能しません。これは、localhost の後に "AppName" がないためです。

ルートを変更して書き換えルールを作成しようとしましたが、まだ運がありません.なぜこれが起こるのかわかりません.それが私を心配しています.リンクの生成方法を変更することを検討しましたが「/」を強制する方が良いでしょう。これに関する考えは大歓迎です。

ちなみに、デフォルトルートを使用しています。

4

2 に答える 2

0

これを修正しようとする方法がいくつかあります。ググることができ、かなりの解決策を試すことができます。しかし、どれも完璧ではありません。

私のオプションでは、実際の修正は、相対パスを使用して無効にすることです。あなたの場合、books/index を href として使用しないでください。代わりに、常に url ヘルパーを使用して絶対パスを作成する必要があります。

この問題の原因は asp.net ルート メカニズムにあるため、根本的な修正はルート メカニズムにとどまっています。

于 2013-03-12T19:24:59.207 に答える
0

実際、私もこの問題を抱えていました..これが正しい解決策であるかどうかはわかりませんが、これは私にとってはうまくいきました! href.. には @Url.Action() を使用します。

<a href = @Url.Action("ActionName","ControllerName")>
于 2013-09-06T13:22:26.120 に答える