我正在使用VS2010和ASP.NET 4构建Web应用程序
我已经设法在嵌套母版页中声明和定义变量,并在母版页中调用它。但是,如何从内容页面的代码隐藏更改该变量的值?
以下是DeckNav.master.cs的变量声明(嵌套母版页代码隐藏):
public partial class DeckNav : System.Web.UI.MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{
this.mfrName = "(BRAND)";
this.modelName = "(MODEL)";
}
public string mfrName { get; set; }
public string modelName { get; set; }
}
这就是我在母版页(DeckNav.master)中调用2个变量(默认值)的方法:
<asp:ContentPlaceHolder ID="brandAndModel" runat="server">
<h1 class="page-header"> <%= mfrName %> <%= modelName %>
</h1>
</asp:ContentPlaceHolder>
在从DeckNav.master继承的内容页面中,我需要知道如何从代码隐藏中为每个ASPX内容页面相应地更改变量的值。
示例:
public partial class DeckRepair : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
mfrName = "Brand 10";
modelName = "Model 12";
}
}
上面的代码段不起作用。 Visual Studio提醒我“当前上下文中不存在该名称”。
编辑:
我在主页的代码隐藏中将变量声明为静态:
public partial class LeftNav : System.Web.UI.MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{
}
public static string camMfr { get; set; }
public static string camModel { get; set; }
}
...并在内容页面的代码隐藏上分配值:
public partial class BrandModel : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
LeftNav.camMfr = "BRAND 11";
LeftNav.camModel = "MODEL 11";
}
}
我仍然遇到同样的问题。它成功地将变量首次分配给“BRAND 11”,但是当我为camMfr和camModel加载另一个具有其自己唯一值的内容页面(即“BRAND 22”,“MODEL 22”)时,它保留原始分配值(“品牌11“)。请记住,我没有在母版页中指定一个值,只是声明它。
答案 0 :(得分:0)
尝试
DeckNav.mfrName = "Brand 10";
DeckNav.modelName = "Model 12";