Я нахожусь в процессе миграции приложения ASP.NET MVC 5 на ASP.NET MVC Core.
В старой кодовой базе в нашем файле ~/Views/web.config
мы установили для атрибута pageBaseType
страницы собственный тип, производный от WebViewPage<TModel>
:
<pages pageBaseType="MyBaseView"> … </pages>
Этот пользовательский тип имелсвойство, открывающее доступ к контроллеру через ViewContext:
public BaseController Controller => ViewContext?.Controller as BaseController;
Я настроил приложение ASP.NET Core аналогично, настроив его в _ViewImports.cshtml
вместо web.config
:
@inherits MyBaseView<TModel>
Однако, Microsoft.AspNetCore.Mvc.Rendering.ViewContext
не имеет свойства Controller, которое было у System.Web.Mvc.ViewContext
.
Итак, есть ли способ, из моего MyCustomView<TModel>
класса, который наследуется от RazorPage<TModel>
, дополучить доступ к текущему контроллеру?
Прежде чем кто-либо скажет это, я знаю, что вообще не должен обращаться к контроллеру из представления, но именно так написана эта кодовая база, и я пытаюсь перенести ееперед исправлением таких вещей (когда это возможно).