Один из способов сделать это - использовать свойство, подобное этому (метод также будет работать):
protected string BodyBackgroundImageUrl
{
get
{
// I just chose random pic
return "http://www.google.com/images/logos/ps_logo2.png";
}
}
Вам не нужно устанавливать значение, подобное этому, вы можете заполнить его позже изpage Init
event.
Затем в теле вы можете сделать что-то вроде:
<body style='background:url(<%= BodyBackgroundImageUrl %>) no-repeat;'>
Без повторений просто для того, чтобы показать, что вы можете писать все, что хотите.
Конечно, вы даже можете иметь больше контроля и разные способы вещей:
public string GetBodyStyle()
{
// Get the picture somehow dynamically
string bodyBackgroundImageUrl = GetBodyBackgroundImageUrl();
// You can use StringBuilder or so, not the main point
var styles = "";
styles += string.Format("background:url({0}) no-repeat;", bodyBackgroundImageUrl);
// ... Add some extra styles if you want ...
return styles;
}
И тогда ваш тег Body будет выглядеть так:
<body style='<%= GetBodyStyle() %>'>
...
Кроме того, вы всегда можете использовать скрытое поле, которому вы присваиваете значение со страницы, а затем в браузере установить URL-адрес фона для этого скрытого поля с помощью JavaScript.
Пример (с использованием jQuery, но вам не обязательно):
$(function() {
// ASP.NET will fill the ID, then # with ID will show to JS as one JS string
var myHiddenField = $('#<%= myServerSideHiddenField.ClientID %>');
var bodyBackground = "url(" + myHiddenField.val() + ")";
document.body.css("background" , bodyBackground);
});