1

私は現在 Visual Studio 2012 を使用しており、ASP.NET プログラミングはまったく初めてです。それにもかかわらず、Google を検索して、役に立ちそうなものをいくつか見つけたにもかかわらず、結局、この状況で立ち往生してしまいました。「名前」が現在のコンテキストに存在しないという種類のエラーを受け取るほとんどの人は、非常に類似した問題を抱えているようには見えず、どれも私には関係がないようです。

これまでのところ、(デザイナー ファイルの削除と再作成を試みましたが、役に立ちませんでした。これは、以前のスタック オーバーフローの質問で推奨されていました。(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