0

リソースファイルからロードされたテキストがあります。通常、動的コンテンツを取得するには、次のものを使用します。

string.Format(GetLocalResourceObject("SomeText"), PhoneNumberAsString) 

リンクでも同じことをしたいのですが、とのようなURLがあるので、リンクだけがアプリケーションに相対的である必要がありmysite.com/page.aspxますmysite.com/fr/page.aspx

私は通常、<asp:HyperLink />タグを使用してリンクを作成します。これにより、最初に波線を付けることができますNavigateUrl="~/page.aspx"。ただし、動的HyperLinkをコントロールとして追加せずに、文字列として表示する方法がわかりません。

単にToString()出力を書き込むSystem.Web.UI.WebControls.HyperLink.

リソースファイルからリンクを取得し、ASP.NET Webフォームを使用してハイパーリンクにするにはどうすればよいですか?

アップデート

答えの助けを借りて、私は今私のページに次のコードを持っています:

<p><%= string.Format(GetGlobalResourceObject("Resource", "MoreThan1000Users").ToString(), ResolveUrl("~/contact-us.aspx")) %></p>

私のリソースファイルには次のものがあります。

If you would like more than 1000 users please <a href="{0}">call our sales team</a>.

これは良い習慣のように見えますか、それとも私がしていることを達成するための別の方法がありますか?リソースファイル内にHTMLが含まれていることに満足すべきかどうかはわかりません。

4

2 に答える 2

1

コードを投稿していないので、ToString()を押しているHyperLinkWebControlオブジェクトがどこかにあると思います。その場合は、そのmyHyperLinkControl.NavigateUrlプロパティを使用して、それに関連付けられたURLにアクセスできます。

リンクをsquiggle/tilde(これは良い)でリソースに保存している場合は、squiggleをアプリケーションの場所に置き換えることができます。コントロール/ページがある場合は、そのResolveURLメソッドを簡単に呼び出すことができます(チルダを取得して自動的に置き換えます)コンテキストでコントロール/ページ参照がない場合は、いくつかの既存のソリューションがあります。ここでそれを行います:ASP.NETページなしでResolveUrl

于 2012-05-04T12:26:07.857 に答える
0

私はこれがあなたが望むものだと思います:

Server.MapPath("~/page.aspx")

これは、aspxとコードビハインド内で機能します。

于 2012-05-04T12:33:59.023 に答える