Это будет звучать глупо, но пересоберите и перезапустите Visual Studio несколько раз: -D
Я только что воспроизвел проблему и перепробовал все, чтобы она работала (включая изменение pageBaseType в дополнение к одному). Я перезапустил VS, и он начал работать. Удалена деталь, и она все еще работает после нескольких циклов очистки / восстановления / перезапуска.
Мои представления / Web.config имеет это:
<system.web.webPages.razor>
<pages pageBaseType="ClassLibrary1.MyBasePage">
</system.web.webPages.razor>
В моем веб-проекте есть ссылка на проект ClassLibrary1.
Мой пользовательский класс (в ClassLibrary1) выглядит следующим образом:
namespace ClassLibrary1
{
public abstract class MyBasePage<T> : WebViewPage<T>
{
public string DannyName { get; set; }
public MyBasePage()
{
this.DannyName = "Danny Tuppeny";
}
}
}
И когда в веб-проектах Views / Home / Index.cshtml я получаю intellisense для "@DannyName" при вводе "@D".
Некоторые вещи, которые я пробовал, могли иметь эффект, но он все еще работает после того, как я удалил его:
- Добавлен pageBaseType в Views / web.config в разделе
- Добавлена неуниверсальная версия класса:
- открытый абстрактный класс MyBasePage: MyBasePage {}