2017-09-27 11 views
0

私はVS 2017でASP.Net MVC 4のWebアプリケーションを持っています。 カスタムヘルパー(リンク)を作成しました。 私は、デバッグとカスタムヘルパーは正しいリンクを出力します。このよう :Razorのマウスオーバー時に間違ったURL

<a href="MyController/MyAction?Id=3" id="MyLink">Click here</a> 

また、ブラウザのビューのソースコードでは、それはOKを示しています。

しかし、私のマウスがリンクの上のURLは次のように示していたとき:

http://localhost:1234/MyController/MyController/MyAction?Id=3 

つまり、コントローラ部分はを重複して表示され、私がクリックしたときに、もちろん の、それが行きません正しい目的地。

何が起こったのですか?

+1

カスタムリンクヘルパーを作りました。エラーが発生します。あなたはそのエラーの助けが必要です。それから[ask]を読んで、カスタムリンクヘルパーの実際のコードを含めてください。 – CodeCaster

答えて

1

相対URLを出力しているようです。相対URLは、常に現在表示されているURLとの相対的なものです。

相対URLの前にスラッシュを入れて、現在のURLに相対的にではなく、サイトのルートを基準にして相対パスを設定することをお勧めします。上記Url.Action方法において

+1

あなたのアプリケーションをWebサイト内のアプリケーション、例えば 'FooApp'にデプロイするまで、うまくいきます。その後、リンクは 'http:// localhost/FooApp/MyController'の代わりに' http:// localhost/MyController'に行きます。 MVCにリンクヘルパーが付いている理由があります。彼らは仕事をうまくやっています。車輪を再構築しないでください。 – CodeCaster

+0

あなたは正しいです、サム・アックス。 –

+0

はい、私はMVCに付属のヘルパーを使用しますが、今回はリンク内に別のコンテンツとタグ(条件に応じて)を表示するロジックが必要なため、カスタムヘルパーが必要でした。私は単純な理由から私の答えには含めなかった。 –

0
<a href="/MyController/MyAction?Id=3" id="MyLink">Click here</a> 

、最初のパラメータはアクションメソッドの名前であり、2番目のパラメータは、このアクションの方法が存在するコントローラの名前です。

Url.Action in ASP.NET MVC

<a href="@(Url.Action("MyAction","MyController",new{Id=3}))" id="MyLink">Click here</a> 
関連する問題