2009-05-14 7 views
1

In meinem .ascx usercontrol versuche ich dynamisch zu generieren Links mit einem Wert, den ich in web.config gespeichert habe.referenzieren appSettings von usercontrols

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

und wenn ich versuche, ausgeführt wird, erhalte ich einen Parser-Fehler

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

Ich weiß, dass ich wahrscheinlich etwas relativ gering fehlt bin.

Antwort

2
 
    <a href="<%= System.Configuration.ConfigurationManager.appSettings("MYPATH") %>">link</a> 

sollte funktionieren (es tut zumindest auf dem IIS-Server, den ich verwende). (Leider ist es ausführlicher)

1

Versuchen Sie stattdessen

.ascx

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

in Code hinter

Literal1.Text = "<a href='" + appSettings.MYPATH + "'/file.aspx">link</a>" 
4
<%= ConfigurationManager.AppSettings["myKey"] %> 

EDIT: Vergessen Sie nicht die =

0

Genauere Antwort wird der nächste sein:

<a href="<%= System.Configuration.ConfigurationManager.AppSettings["param_name"] %>">Link</a> 
0

Verwenden Sie einen Doppelpunkt anstelle eines Punktes und fügen runat="server":

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

The documentation auf diese ist nicht ganz klar Punkt, aber ASP.Net Expressions sind für die Verwendung innerhalb von Server-Tags. Wenn Sie also einen in einem einfachen HTML-Tag verwenden möchten, müssen Sie runat="server" hinzufügen, damit das Tag auf dem Server verarbeitet wird, auf dem der Ausdruck ausgewertet wird.