2017-09-26 13 views
-1

私は、レポートと呼ばれるビューにユーザーを誘導するボタンがあります。そのレポートビューにはキャンセルボタンがあります。クリックすると、最初のページ、つまりホーム/インデックスに戻ります。ボタンをクリックすると、Home/Indexに戻りますが、レポートビューに戻るためにボタンをクリックすると、リソースが見つからないというエラーが表示されます。私が持っているアドレスバーを見ると、ホーム/ FileAReport /レポート、FileAReport/Reportに移動すると思われるレポートボタンのクリックイベント。バックホーム/ Indexビューに私を取る コード私はキャンセルボタンをクリックし、FileAReportボタンをクリックしたときにMVCプロジェクトでjqueryをクリックしてボタンの開始ページにリダイレクトする方法はありますか?

$('#CancelFAR').on('click', function() { 
    window.location.href = '/Home/Index/' 
}); 

さて、なぜアドレス今やホーム/ FileAReport /レポートがありますか?どうすればこの問題を解決できますか?

+0

mvcのバージョンはこれですか? –

+0

@NevilleNazerane、5 – Chris

+0

また、リンクだけでなく、jsでボタンを使用する必要がある理由もありますか?もっと何かをするためのボタンですか? –

答えて

0

MVCを初めて使用したときと同じ混乱がありました。それは現在のURLとして何が取られるかによって異なります。 Razorには、現在のページに基づいて正確なパスを生成するいくつかの方法があります。次のようにリンクを生成する方法の一つは、次のとおりです。

@Html.Action("Action", "Controller") 

あなたのケースでは、それはこの機能は、HTMLリンクまたは<a>タグを生成

@Html.Action("Report", "FileAReport") 

ようなものになるだろう。オーバーロードをチェックして、より多くの機能を確認することができます。しかし、この方法はコード内にhtmlコードを隠しているのでお勧めできません。代わりに@Url.Actionまたは@Url.Contentを使用して同じことを行うことができます。 @Url.Actionを使用する場合は、上の例のようなアクションとコントローラを記述できます。 @Url.Contentは、あなたがこのようなルートから任意のURLを生成するのに役立ちます:

<a href="@Url.Content("~/FileAReport/Report")" >My link</a> 

これは明らかにそれがリンク/ anchortagであることを誰もが表示されます。私はなぜあなたがリンクタグの代わりにdivを使用しているのか分かりませんが、それが見た目のためであれば、いつでもCSSを使って好きなように見えるようにすることができます。

<script> 
    var reportUrl = "@Url.Content("~/FileAReport/Report")"; 
</script> 

をそして、あなたはあなたのjsファイルにreportUrl変数を使用することができます。しかし、あなたはJavaScriptで実際のURLを必要がある場合は、何らかの理由で、あなたのかみそりファイルに次のようなものを宣言することができます。あなたが見ることができるように、Url.Content機能は、かみそりの中のどこでも使用することができます。

関連する問題