Как я могу создать базовый класс MasterPage в ASP.NET? - PullRequest
0 голосов
/ 29 сентября 2018

Я пытаюсь создать базовый класс для MasterPage в ASP.NET, чтобы структура наследования была следующей:

System.Web.UI.MasterPage -> BaseMasterPage -> SiteMasterPage

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

Источники здесь и здесь предполагают, что то, что я пытаюсь сделать, возможно с подклассами класса Page, но я не могу заставить его работать, и мне интересно, есть ли что-то в этом MasterPage, что мешает мне сделать это.

Вот что у меня есть:

Base.Master.vb (в папке App_Code)

Public Class BaseMasterPage
    Inherits System.Web.UI.MasterPage

End Class

Site.Master.vb (в папке с именем Master)

Public Class SiteMasterPage
    Inherits GSHolidays.BaseMasterPage

End Class

Первая строка Site.master (также в Master)

<%@ Master Language="VB" AutoEventWireup="true" CodeFile="Site.master.vb" CodeFileBaseClass="GSHolidays.BaseMasterPage" Inherits="GSHolidays.SiteMasterPage" %>

Я изменил имена классов, а также удалил их содержимое для простоты.Пространство имен GSHolidays является значением по умолчанию, определенным в файле проекта.

Вот ошибка, которую я получаю:

В браузере (при переходе на страницу, котораяиспользует SiteMasterPage): ASP.NET Error: Make sure that the class defined in this code file matches the 'inherits' attribute, and that it extends the correct base class (e.g. Page or UserControl) Немного поиска в Google по этой проблеме побудил меня добавить свойство CodeFileBaseClass (у меня его изначально не было), которое, похоже, не решило проблему,но добавил еще один, внутри Visual Studio -

В Visual Studio 2017: Visual Studio 2017 ASP.NET Error: must be subtype of ???

Я не могу найти какую-либо информацию в Интернете об этой ошибкеи независимо от того, что я делаю, это, похоже, не исчезнет (если я не уберу свойство CodeFileBaseClass.

Я действительно не уверен, куда идти отсюда, поэтому я надеялся, что один из васпарни могут помочь мне. Я прошу прощения, что этот вопрос довольно длинный, хотя, надеюсь, проблема проста, и кто-то может указать мне правильное направление. Заранее спасибо!

...