Nicht sehr sauber, aber in einer ASP.NET MVC-Ansicht könnte man dies tatsächlich schreiben:
<asp:Literal ID="dummy" runat="server" Text="<%$appSettings:MySettingKey%>" />
Das bedeutet, dass der Wert, den Sie in appSettings haben, gedruckt wird:
<appSettings>
<add key="MySettingKey" value="SOME VALUE"/>
</appSettings>
Oh, und es wird kein VIEWSTATE-Tag zu Ihrer Seite hinzugefügt :-)
Nun zu dem Punkt: Ich werde stark entmutigen Sie tun so etwas wie dieses MVC. Es ist nicht die Ansicht der Verantwortung, die Daten zu ziehen, um zu zeigen, es ist der Controller, der es übergeben muss. Also würde ich MySetting zu einer Eigenschaft des ViewModel machen, die vom Controller befüllt und an den View übergeben wird, um angezeigt zu werden.
public ActionResult Index()
{
var model = new SomeViewModel
{
// TODO: Might consider some repository here
MySetting = ConfigurationManager.AppSettings["MySetting"]
}
return View(model);
}
Und in der Ansicht:
<%= Html.Encode(Model.MySetting) %>
oder noch kürzer mit dem neue Syntax eingeführt in ASP.NET 4:
<%: Model.MySetting %>
UPDATE
Noch eine Alternative, wenn Sie denken, dass MySetting keine Eigenschaft des ViewModel ist (wie einige css-Namen oder ähnliches) könnten Sie den HtmlHelper erweitern:
public static string ConfigValue(this HtmlHelper htmlHelper, string key)
{
return ConfigurationManager.AppSettings[key];
}
Und verwenden Sie es so:
<%= Html.Encode(Html.ConfigValue("MySetting")) %>