私は現在 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">
それが問題かもしれないと思った場合に備えて。また、これはさまざまなコードをマージした結果として作成されたものであることに注意してください。これは私自身が作成したものではありません。私は始めたばかりで、そのようなことについて取り組んでいます。
いずれにせよ、大小を問わずすべての助けが非常に高く評価されています。お時間をいただきありがとうございます。