ASP.NET - 无法获取 MasterPage 的 GetType()

发布于 2024-07-17 06:55:11 字数 551 浏览 7 评论 0原文

我有一个 MasterPage 并获取其类型如下:

alt text http://www.yart .com.au/stackoverflow/masterpage.png

没问题,这有效

现在,当我创建一个 aspx 页面并尝试相同的操作时,我得到 null:

替代文本 http://www.yart.com.au/stackoverflow/page.png

为什么?

我怎样才能让它发挥作用?

注意

下面的答案说我需要引用一个程序集。 但是,当我将此应用程序作为 ASP.NET 网站运行时,我该如何执行此操作 - 这里有已编译的 DLL。

I have a MasterPage and get its type as follows:

alt text http://www.yart.com.au/stackoverflow/masterpage.png

No problem, this works

Now, when I create an aspx page and try the same thing I get null:

alt text http://www.yart.com.au/stackoverflow/page.png

Why?

How can I get this to work?

NOTE

The answers below say I need to reference an Assembly.
But how do I do that when I am running this application as an ASP.NET website - there are on compiled DLLs here.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

面犯桃花 2024-07-24 06:55:11

发生这种情况的原因是因为您使用的是网站而不是 Web 项目,所以您正在单独编译每个页面。

因此,每个页面都是一个单独的程序集,不了解其他页面。 如果您想使用 GetType,我建议更改为 Web 项目,以使您的生活更轻松。

The reason this is occurring is because you are compiling each page individually becuase you are using a website instead of a web project.

So each page is an individual assembly that doesn't know about the other. If you want to use the GetType I would recommend changing to a web project to make your life easier.

泪冰清 2024-07-24 06:55:11

在 aspx 页面的标记中,您可以像这样指定正在使用的母版页类型:

<%@ MasterType VirtualPath="~/MasterPage.master" %>

在任何情况下,您都可以从代码隐藏中的调用中获取当前母版页的类型,如下所示:

protected void Page_Load(object sender, EventArgs e)
{
    Type t;
    t = this.Master.GetType();
}

In the markup for your aspx page you can specify the master page type you are using like so:

<%@ MasterType VirtualPath="~/MasterPage.master" %>

In any case, you can get the type of the current master page back from a call like this in your codebehind:

protected void Page_Load(object sender, EventArgs e)
{
    Type t;
    t = this.Master.GetType();
}
暗藏城府 2024-07-24 06:55:11

Type.GetType(string) 需要程序集限定的类型名称。

Type.GetType(string) requires an assembly-qualified type name.

一瞬间的火花 2024-07-24 06:55:11

添加史蒂夫的建议,我一直使用他的方法,
另请查看有关 MasterType 指令的 MSDN 文章。

http://msdn.microsoft.com/en-us/library/ms228274。 ASPX

add to what Steve suggested, i use his method all the time,
also check this MSDN article about MasterType directive.

http://msdn.microsoft.com/en-us/library/ms228274.aspx

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文