如何重新定义在母版页上声明的内容页'

本文关键字:声明 定义 何重新 母版页 | 更新日期: 2023-09-27 18:15:48

我正在使用VS2010和ASP构建web应用程序。净4

我已经设法在一个嵌套的母版页中声明和定义一个变量,并在母版页中调用它。但是,如何从内容页的代码后面更改该变量的值?

下面是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; }
}

这就是我如何调用2个变量(默认值)在母版页(DeckNav.master):

<asp:ContentPlaceHolder ID="brandAndModel" runat="server">
<h1 class="page-header"> <%= mfrName %> <%= modelName %>
</h1>
</asp:ContentPlaceHolder>

在从DeckNav继承的内容页中。主,我需要知道如何改变变量的值相应的每个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"),它保留原始赋值("BRAND 11")。请记住,我不是在母版页中赋值,只是声明它。

如何重新定义在母版页上声明的内容页'

Try

DeckNav.mfrName = "Brand 10";
DeckNav.modelName = "Model 12";