1

我目前正在使用 Visual Studio 2012,并且对 ASP.NET 编程完全陌生。尽管如此,尽管搜索了谷歌并找到了一些看起来可能有帮助的东西,但我最终还是陷入了这种境地。大多数在当前上下文中不存在“名称”类错误的人似乎没有非常相似的问题,而且似乎与我无关。

到目前为止,我已经尝试过(删除并重新创建设计器文件,但无济于事。这是以前的一些 stackoverflow 问题所推荐的,并且(b,这个小解决方法可以从母版页外部访问 body 标签(即本质上是我在这里尝试做的)。

这是我的代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace WebApplication1
{
    public partial class _Default : Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            HelloWorldLabel.Text = "Hello" + TextInput.Text;
            if (Request.Cookies["BackgroundColor"] != null)
            {
                ColorSelector.SelectedValue = Request.Cookies["BackgroundColor"].Value;
                BodyTag.Style["background-color"] = ColorSelector.SelectedValue;
            }
        }

        protected void GreetList_SelectedIndexChanged(object sender, EventArgs e)
        {
            HelloWorldLabel.Text = "Hello, " + GreetList.SelectedValue;
        }

        protected void ColorSelector_IndexChanged(object sender, EventArgs e)
        {
            BodyTag.Style["background-color"] = ColorSelector.SelectedValue;
            HttpCookie cookie = new HttpCookie("BackgroundColor");
            cookie.Value = ColorSelector.SelectedValue;
            cookie.Expires = DateTime.Now.AddHours(1);
            Response.SetCookie(cookie);
        }
    }
}

BodyTag 已在此处由此解决方法定义:

public HtmlGenericControl BodyTag
    {
        get
        {
            return MasterPageBodyTag;
        }
        set
        {
            MasterPageBodyTag = value;
        }
    }

这似乎没有任何困难,但最终没有解决问题。我还导入了正确的类等。

请注意,我的母版页有这个:

<body id="MasterPageBodyTag" runat="server">

以防万一您认为这可能是问题所在。另请注意,这是由于合并了各种代码而创建的——我自己没有创建这个!我才刚刚开始并处理此类事情。

无论如何,非常感谢所有大大小小的帮助。在此先感谢您的时间!

4

1 回答 1

0

要么你设置

<body id="BodyTag"  runat="server">

或者您将代码中的 BodyTag 更改为"MasterPageBodyTag"

于 2015-03-17T19:26:39.577 回答