我有一个asp.net网页。代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Login.aspx.cs" Inherits="Works.Login" %>
<!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>
<link rel="stylesheet" type="text/css" href="/styles/source/style.css" />
</head>
<body id="PageBody" runat="server">
<form id="form1" runat="server">
<div style="text-align: center" >
在后面的代码中,我想在body属性中添加一些内容。
protected void Page_PreRender(object sender, EventArgs e)
{
if (PageBody != null)
{
PageBody.Attributes.Add("class", "some_image");
然而我发现它根本不起作用。我进入代码,发现有一个例外。
InnerText ='((System.Web.UI.HtmlControls.HtmlContainerControl)(((System.Web.UI.HtmlControls.HtmlGenericControl)(PageBody))))。InnerText' 抛出了'System.Web.HttpException'}
类型的异常
感谢您的帮助。
答案 0 :(得分:1)
在PageLoad中,它有效。
protected void Page_Load(object sender, EventArgs e)
{
if (PageBody != null)
{
PageBody.Attributes.Add("class", "myClass");
}
}
编辑:显示此功能的完整代码正在运行(因为操作有疑问)
我的ASPX页面
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm4.aspx.cs" Inherits="SO.WebForm4" %>
<!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>
<style>
body
{
background-color:Olive;
}
.myClass
{
background-color:Orange;
}
</style>
</head>
<body id="PageBody" runat="server">
<form id="form1" runat="server">
<div>
<h2>Testing styles</h2>
<p>If the bg color is Orange, code is working</p>
</div>
</form>
</body>
</html>
代码隐藏
using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace SO
{
public partial class WebForm4 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (PageBody != null)
{
PageBody.Attributes.Add("class", "myClass");
}
}
}
}
这是输出
答案 1 :(得分:0)
这对我有用:
PageBody.Attributes["class"] = "some_image";