Не очень чисто, но в ASP.NET MVC View вы могли бы написать:
<asp:Literal ID="dummy" runat="server" Text="<%$appSettings:MySettingKey%>" />
Который будет эффективно печатать любое значение, которое вы используете в appSettings:
<appSettings>
<add key="MySettingKey" value="SOME VALUE"/>
</appSettings>
Да, и на вашей странице не будет добавлен тег VIEWSTATE: -)
Теперь по существу: я настоятельно не рекомендую вам делать что-то вроде этого MVC. View не несет ответственности за получение данных для показа, это контроллер, который должен их передать. Поэтому я бы сделал MySetting свойством ViewModel, которое будет заполнено контроллером и передано представлению, которое будет показано.
public ActionResult Index()
{
var model = new SomeViewModel
{
// TODO: Might consider some repository here
MySetting = ConfigurationManager.AppSettings["MySetting"]
}
return View(model);
}
А на виде:
<%= Html.Encode(Model.MySetting) %>
или даже короче с новым синтаксисом , представленным в ASP.NET 4:
<%: Model.MySetting %>
UPDATE:
Еще одна альтернатива, если вы считаете, что MySetting не является свойством ViewModel (например, имя CSS или подобное), вы можете расширить HtmlHelper:
public static string ConfigValue(this HtmlHelper htmlHelper, string key)
{
return ConfigurationManager.AppSettings[key];
}
И используйте это так:
<%= Html.Encode(Html.ConfigValue("MySetting")) %>