gpt4 book ai didi

c# - 覆盖 ASP.net 中的母版页功能

转载 作者:太空宇宙 更新时间:2023-11-03 22:26:19 25 4
gpt4 key购买 nike

在我的母版页中有一行

<div class ="breadcrumbs" runat="server"><%= SitePath()%></div>  

SitePath() 涉及一个自定义类,该类基于静态站点地图和动态生成的页面的组合构建导航元素。它返回自定义面包屑导航元素的 html。

这是我后面的代码中的 SitePath() 代码

public string SitePath()
{
BreadCrumbNav breadNav = new BreadCrumbNav();
breadNav.divClass = ".dv";
breadNav.homeTitle = "ABC Home";
return breadNav.Build();
}

我希望能够从我的动态页面中覆盖它,以便我可以添加到路径中。例如……

public override string SitePath()
{
BreadCrumbNav breadNav = new BreadCrumbNav();
breadNav.divClass = ".dv";
breadNav.homeTitle = "ABC Home";
breadNav.AddPage("Cooking Equipment", "PathyGoodness/Cooking+Equipment.ASPX");
breadNav.AddPage("Toasters", "PathyGoodness/Cooking+Equipment/Toasters.ASPX");
return breadNav.Build();
}

有没有一种方法可以将母版页方法纳入范围,以便我可以覆盖它们——或者我是否需要以不同的方式解决这个问题?感觉就像我错过了一些非常明显的东西,但我似乎被卡住了。

感谢您的帮助!

最佳答案

由于母版页实际上并没有被继承,而是被用作模板,所以这不是直接可能的。

您可以尝试其他一些方法:

首先,将它放在 ContentPlaceholder 中,并仅在必要时在您的各个页面的 ASPX 标记中覆盖它。

一种更复杂的方法是为您的所有页面创建一个接口(interface)以继承该接口(interface)以保证它们具有 SitePath() 方法。相反,在 页面 上从 Master 调用该方法,在那些不“覆盖”行为的页面中,只需调用 Master。在其他情况下,将您的特定实现添加到该方法,瞧! (我想你也可以使用一个抽象的 BasePage 类来从那个方法调用 Master)

关于c# - 覆盖 ASP.net 中的母版页功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1266459/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com