2017-02-09 13 views
0

コンテンツやブラウザへのローカルリンクを表示して、ブラウザでダウンロードまたは表示するためのラベルが動的に作成されています。リソースの原因となるハイパーリンクURLが見つかりません

label.Text="..content.." + " <asp:HyperLink runat=\"server\" NavigateUrl=\"~/c/customer/uploads/TestDocument.docx\">HyperLink</asp:HyperLink>"; 

私はダイナミックラベルにリンクを表示するには、ハイパーリンクコントロールや<a>タグを使用することができますし、私はそのビジュアルWeb開発者2010 Expressが自動的に接頭辞としてルートパスを追加する以外のリンクアドレスは基本的に正しいことを見ることができます

http://localhost:50969/website/ 

パス文字列のあとにURLを追加すると、2つの一重引用符で囲みます。

http://localhost:50969/website/'c/customer/uploads/TestDocument.docx' 

リンクをクリックすると、ページがresource cannot be foundエラーをスローします。 2つの単一引用符でエラーが発生していると思います。一重引用符を削除する方法はありますか?それとももっと良いテクニックがありますか?

+0

あなたが試みることができる 'NavigateUrl = '〜/ C /顧客/アップロード/ TestDocument.docx''代わりに' NavigateUrl = \ "〜/ C /顧客/アップロード/ TestDocument.docx \" 'の?参照:[サーバータグはasp:ハイパーリンクで解析されません](http://stackoverflow.com/a/14130823/6741868) –

+0

@ KeyurPATELこれは結果のURL http:// localhost:50969/website/'c/customer/uploads/TestDocument.docx 'と同じですが、同じエラーですが、技術的に不正確な構文です。二重引用符がリンクボタンの開始タグの最後に署名するためです。 – matt2605

+0

@ KeyurPATELあなたの提案には論理があります。操作すると、一重引用符が削除されます。私はポストを更新したままにします。 – matt2605

答えて

1

ラベルに文字列としてasp.netコントロールを追加しようとしていますが、これはうまくいかないでしょう。

HyperLinkコントロールをaspxページに配置し、NavigateUrlプロパティを設定して正しく使用してください。

<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="~/c/customer/uploads/TestDocument.docx">HyperLink</asp:HyperLink> 

または、「通常の」ハイパーリンクを文字列として作成します。

label.Text = "..content..<a href=\"~/c/customer/uploads/TestDocument.docx\">HyperLink</a>"; 
+0

質問を正しく読むと、動的にまたは文字列として追加する必要があるため、コントロールまたはリンクをaspxページに配置できないことがわかります。 – matt2605

関連する問題