2016-12-15 6 views
0

私は管理者や一部のユーザーが使用するMVCアプリケーションを持っています。MVCページでURLを作成する方法 '/ id'とは無関係

/ツール/リスト管理者のようなURLを持つすべてのユーザーの一覧ページを見ることができます

:ユーザーがURLと、ページ上の独自のツールの一覧を見ることができます

/ツール/リスト/ 1234

1234は、ユーザーのIDです。

エクセルファイルページでツールのリストをダウンロードするためには、以下があります:あなたが管理者であるとき、正常に動作します

<a onclick='window.open("../ExcelListe");'>Download</a> 

。あなたは(URLに「/ ID」なし)ユーザーHTMLであることが必要ですときしかし:

<a onclick='window.open("ExcelListe");'>..</a>// without ../ 

場合-他の私はfilterContextにURL上でテストを行うと、いくつかのことで、この問題を解決することができますかみそりのコードで。しかし、この問題を解決するよりスマートな方法はありますか?

私は、デフォルトルートのみ登録されている:この場合Url.Action()には、ヘルパーを使用することが常に優れている、固定またはハードコードされたリンクを使用しない方が良いですMVCで

routes.MapRoute(
    name: "Default", 
    url: "{controller}/{action}/{id}", 
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
    ); 

答えて

1

を。

ExcelListeへのリンクは、Listと同じレベルにあるように見えるので、ExcelListeはToolControllerのアクションメソッドでもあると仮定します。

あなたのビュー(例えばList.cshtml)でこれを入れて:

@{ 
    var link = Url.Action("ExcelListe"); 
} 
<a onclick='window.open("@(link)");'>Download</a> 

あなたはあなたが必要とするURLを取得するためにUrl.Action()のパラメータを微調整することができます。

関連する問題