2016-11-17 45 views
1

ファイルへのハイパーリンクのリストを含むダイアログボックスをポップアップ表示する単純なMVC Webページがあります。それらは正しく "file://"という接頭辞が付けられており、クリップボードにコピーしてブラウザウィンドウに貼り付けると、リンクが正しく動作します。しかし、ダイアログ内から、リンクされたファイルをクリックすると、何も返されません。MVC Webページからファイルを開くためのリンクをクリックできません

何も起こりません。この動作はFirefox、Internet Explorer、Chromeで同じです。私は、例えば、リンクの一つ、「JavaScriptのノートのトップ1の「要素を検証」した場合

enter image description here

:など何の警告、エラー、

視覚的に私の対話は、次のようになりません。

enter image description here

これは、有効なハイパーリンク IS:TXT」、それはこのようになります。上記のように、私はブラウザのアドレスバーにリンクをコピーすることができ、リンクされたファイルは正常に開きます。私はまた、要素の完全なHTMLをメモ帳にコピーし、タグでラップし、.htmlファイルとして保存することができます。リンクはそこからうまく機能します。リンクは、どのブラウザからでも、ダイアログでは機能しません。

現在、剣道のグリッドにリンクを表示しています。私は問題があるかもしれないと思って、グリッドを一時的に取り除き、プレーンなHTMLで表示しようとしました。同じ問題 - リンクをクリックすると結果が全く出ません。

私はここでもっと深く戦っていますか?同様に、私はリストを表示するためにjqueryダイアログを使用しています。 jqueryダイアログは、ハイパーリンクが機能しないようにするために何かしますか?任意のヘルプについては

TIA

+0

のJavaScriptの誤ったビットのように聞こえるが、実際に傍受やリンクのクリックを防止しています。それはグリッド内にあるという事実と関係しているかもしれません。わからない。しかしJavaScriptはこの問題を説明する唯一のものです。 Clickイベントハンドラを探し、特に 'preventDefault()'のようなものがあるかもしれません。 –

+2

ブラウザは、セキュリティ上の理由から、デフォルトで 'file:// ...'へのリンクを許可しません(元の提供ページが 'file://'からのものでない限り)。これを回避するには、コマンドラインから ' --allow-file-access-from-files'(他のブラウザには他のコマンドライン引数があります)、またはMVCと通常のhttp:// ...ハイパーリンクを使用してファイルを提供します – Amy

+0

詳細については、[Firefox ](http://kb.mozillazine.org/Firefox_:_Issues_:_Links_to_Local_Pages_Don%27t_Work)、[Chrome](https://stackoverflow.com/questions/2087894/can-google-chrome-open-local-links)、 [IE](https://superuser.com/questions/149068/how-to-add-a-local-file-to-trusted-zone-in-ie8) – Amy

答えて

0

元の質問に対するAmyのコメントによれば、ブラウザはhttpで取得したページから開くときにファイル://リンクをブロックしているようです。私が実装した回避策は以下の優れた記事から来ています。ビューではなくファイルを返す単純なアクションメソッドをコード化し、http経由でそのコントローラメソッドを呼び出すようにハイパーリンクを変更しました。魅力のように動作します。

参照:http://rachelappel.com/upload-and-download-files-using-asp-net-mvc/

関連する問題