Holen Sie sich den Wert aus der web.config-AnwendungEinrichten in ASP.NET-Markup

8

Ich könnte jetzt völlig verrückt sein, also werde ich das hier fragen, damit mir jemand helfen kann.

Was ich tun möchte, ist, einen Wert aus meiner web.config, die in einem applicationSettings-Bereich gespeichert ist, in mein aspx-Markup einzufügen. Insbesondere möchte ich eine URL von Config reagen. Dies ist die configSection-Einrichtung, die ich verwende

%Vor%

Später in dieser Datei sind die tatsächlichen Einstellungen wie folgt:

%Vor%

Ich möchte jetzt auf den obigen Wert im Markup wie folgt verweisen:

%Vor%

Ich weiß, dass ein Ausdruck verfügbar ist & lt;% $ AppSettings: ImagesUrl% & gt ;, aber ich verwende nicht den Appsettings-Teil von web.config, sondern die configSection.

BEARBEITEN: Ich glaube, ich kann es nur mit ExpressionBuilder tun, weil ich die Zeichenfolge mit dem einzelnen Bildnamen verketten muss. Ich habe das obige Beispiel geändert, um das widerzuspiegeln.

Ich mag Bert Smith Code Solution unten für den Zugriff auf den Abschnitt config, nur muss ich es in einen Ausdrucksersteller einfügen. Ich bin bei der Übersteuerung der GetCodeExpression-Methode, von wo ich den Configuration Manager aufrufen würde stecken, aber ich verstehe nicht, wie man einen Ausdruck die Parameter erstellen.

%Vor%

BEARBEITEN
Das Ergebnis sieht so aus und funktioniert für alle Arten von Dateien, nicht nur für Bilder:

%Vor%

und ich habe einfach das Beispiel von Microsoft verwendet, um jede Art von Code aus dem Ausdrucksersteller zurückzugeben:

gib neuen CodeSnippetExpression (entry.Expression);

zurück

Und GetAppSetting ist eine Methode in meiner benutzerdefinierten Page-Klasse.

    
Niels Ziegler 20.05.2011, 15:10
quelle

3 Antworten

10

Normalerweise würden Sie eine benutzerdefinierte Einstellungsklasse erstellen, um diese Werte auszulesen, wie dies artical beschreibt . Persönlich würde ich nur die appSettings wie oben vorgeschlagen verwenden, da dies bestehende Funktionalität ist und für das, was Sie tun würden, auf der Oberfläche angemessen erscheinen würde.

Wenn Sie jedoch Ihre Umstände nicht kennen, könnte Ihr Versuch ohne die benutzerdefinierten Einstellungen wie folgt gelöst werden:

Im Code dahinter habe ich eine geschützte Funktion zum Abrufen der Einstellung erstellt

%Vor%

Dann rufe ich im aspx-Markup diese Funktion

auf %Vor%

Hoffe, das hilft.

Nachverfolgung:

Die CodeExpression wird etwa so aussehen:

%Vor%

In meinem Test habe ich eine Klasse namens CustomSettingsExpressionBuilder erstellt und sie zum Ordner App_Code hinzugefügt. Die Konfiguration für den benutzerdefinierten Express wurde der web.config hinzugefügt und von aspx wie folgt aufgerufen:

%Vor%     
Bert Smith 20.05.2011, 19:44
quelle
1

Muss es in Markup sein? Warum stellst du es nicht in Code-Behind ein.

%Vor%

Ein anderer Weg wäre, eine Eigenschaft oder statische Methode in Ihrem Code-Behind zu definieren und diese dann im Markup zu verwenden.

    
gbs 20.05.2011 15:51
quelle
0

Ich bin mir nicht sicher über das ASP.NET-Bit davon, aber wenn das normaler Code wäre, würdest du MyApp.Properties.Settings.Default.ImagesUrl machen, also probiere

aus %Vor%

Es wäre definitiv einfacher, dies in <appSettings> zu speichern.

    
Graham Clark 20.05.2011 15:44
quelle