向主体添加属性失败

时间:2012-03-05 18:36:21

标签: c# asp.net html

我有一个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'}

类型的异常

感谢您的帮助。

2 个答案:

答案 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");
            }
        }
    }
}

这是输出

enter image description here

答案 1 :(得分:0)

这对我有用:

PageBody.Attributes["class"] = "some_image";