1

.ascxユーザーコントロールで、web.configに保存した値を使用してリンクを動的に生成しようとしています。

<a href="<%$appSettings.MYPATH%>/file.aspx">link</a>

実行しようとすると、パーサーエラーが発生します

Literal expressions like '<%$appSettings.MYPATH %>' are not allowed. Use <asp:Literal runat="server" Text="<%$appSettings.MYPATH%>" /> instead.

私はおそらく比較的マイナーなものが欠けていることを知っています。

4

5 に答える 5

4
<%= ConfigurationManager.AppSettings["myKey"] %>

編集: =を忘れないでください

于 2009-05-14T17:50:13.413 に答える
3
    <a href="<%= System.Configuration.ConfigurationManager.appSettings("MYPATH") %>">リンク</a>

動作するはずです (少なくとも、私が使用している IIS サーバーでは動作します)。(残念ながら、それはより冗長です)

于 2009-05-14T17:50:29.093 に答える
1

代わりにこれを試してください

.ascx

<asp:Literal ID="Literal1" runat="server"></asp:Literal>

コードビハインドで

Literal1.Text = "<a href='" + appSettings.MYPATH + "'/file.aspx">link</a>"
于 2009-05-14T17:49:57.377 に答える
0

より正確な答えは次のとおりです。

<a href="<%= System.Configuration.ConfigurationManager.AppSettings["param_name"] %>">Link</a>
于 2012-11-15T17:37:47.047 に答える
0

ドットの代わりにコロンを使用し、次を追加しrunat="server"ます。

<a href="<%$ AppSettings: MYPATH %>/file.aspx">link</a>

ドキュメントはこの点についてあまり明確ではありませんが、ASP.Net 式はサーバー タグ内で使用するためのものです。したがって、プレーンな html タグで使用する場合runat="server"は、式が評価されるサーバーでタグが処理されるように追加する必要があります。

于 2012-12-14T22:17:28.160 に答える