ASP.NET - не могу GetType () MasterPage - PullRequest
1 голос
/ 15 апреля 2009

У меня есть MasterPage и я получаю его тип следующим образом:

альтернативный текст http://www.yart.com.au/stackoverflow/masterpage.png

Нет проблем, это работает

Теперь, когда я создаю страницу aspx и пытаюсь сделать то же самое, я получаю ноль:

альтернативный текст http://www.yart.com.au/stackoverflow/page.png

Почему?

Как мне заставить это работать?

Примечание

Ответы ниже говорят, что мне нужно сослаться на сборку. Но как мне это сделать, когда я запускаю это приложение в качестве веб-сайта ASP.NET?

Ответы [ 4 ]

4 голосов
/ 15 апреля 2009

Причина, по которой это происходит, в том, что вы компилируете каждую страницу отдельно, потому что вы используете веб-сайт вместо веб-проекта.

Таким образом, каждая страница представляет собой отдельную сборку, которая не знает о другой. Если вы хотите использовать GetType, я бы порекомендовал перейти на веб-проект, чтобы сделать вашу жизнь проще.

2 голосов
/ 15 апреля 2009

В разметке для вашей страницы aspx вы можете указать тип главной страницы, который вы используете, например:

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

В любом случае, вы можете получить тип текущей главной страницы от вызова, подобного этому, в вашем коде:

protected void Page_Load(object sender, EventArgs e)
{
    Type t;
    t = this.Master.GetType();
}
1 голос
/ 15 апреля 2009

Type.GetType(string) требуется имя типа с указанием сборки.

0 голосов
/ 16 апреля 2009

добавить к тому, что предложил Стив, я все время использую его метод, также проверьте эту статью MSDN о директиве MasterType.

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

...