ASP.NET - 无法获取 MasterPage 的 GetType()
我有一个 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
发生这种情况的原因是因为您使用的是网站而不是 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.
在 aspx 页面的标记中,您可以像这样指定正在使用的母版页类型:
在任何情况下,您都可以从代码隐藏中的调用中获取当前母版页的类型,如下所示:
In the markup for your aspx page you can specify the master page type you are using like so:
In any case, you can get the type of the current master page back from a call like this in your codebehind:
Type.GetType(string)
需要程序集限定的类型名称。Type.GetType(string)
requires an assembly-qualified type name.添加史蒂夫的建议,我一直使用他的方法,
另请查看有关 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