Вместо использования синтаксиса <%=
для печати окружения (это использует Response.Write
), рассмотрите возможность использования серверного элемента управления, например Literal
или Label
.Поскольку вы хотите изменить цвет фона, это предполагает стилизацию (CSS), поэтому Label
будет уместным.
(A Literal
является просто заполнителем текста и не отображает HTML, тогда как Label
(обычно) отображает текст внутри тегов <span>
.)
Так что я бы изменил вашразметка главной страницы
Environment: <asp:Label ID="environmentLabel" runat="server" />
В выделенном фрагменте кода установите для свойства Text
environmentLabel
значение this.Environment
.В то же время протестируйте значение среды и установите свойство BackColor
метки соответствующим образом (или примените класс CSS).
ОБНОВЛЕНИЕ:
Дляглавная страница, вам нужен только один класс, который будет наследоваться от System.Web.UI.MasterPage
.Если вы создадите это в Visual Studio и назовете его SiteMaster
, вы получите 3 файла:
SiteMaster.Master (разметка)
SiteMaster.Master.cs (код позади)
SiteMaster.Master.designer.cs (автоматически создается / обновляется)
В файле SiteMaster.Master вам понадобится что-то вроде этого:
<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="SiteMaster.master.cs" Inherits="WebApplication1.SiteMaster" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<asp:ContentPlaceHolder ID="head" runat="server">
</asp:ContentPlaceHolder>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="environmentLabel" runat="server" />
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server" />
</div>
</form>
</body>
</html>
В SiteMaster.Master.csвам понадобится что-то вроде этого:
using System;
namespace WebApplication1
{
public partial class SiteMaster : System.Web.UI.MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{
this.environmentLabel.Text = "environment";
this.environmentLabel.BackColor = System.Drawing.Color.Red;
}
}
}
Поскольку метка среды находится на главной странице, любая обычная страница (ASPX), использующая эту главную страницу, будет отображать метку.Каждый раз, когда страница загружается, будет вызываться событие Page_Load
в SiteMaster.Master.cs, и текст будет обновляться.Вам не нужно определять класс MasterPage
самостоятельно, который предоставляется платформой .NET.
Возможно, вы захотите улучшить этот метод Page_Load
, либо используя ViewState и, следовательно, устанавливая текст только есливы не делаете PostBack или отключаете ViewState для элемента управления environmentLabel
.
Наконец, у вас будет одна или несколько страниц ASPX на вашем сайте, с чем-то вроде этого в верхней части разметки:
<%@ Page Title="" Language="C#" MasterPageFile="~/SiteMaster.Master" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" %>