Контроллер доступа из класса, производного от RazorPage <TModel>? - PullRequest
0 голосов
/ 31 января 2019

Я нахожусь в процессе миграции приложения 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>, дополучить доступ к текущему контроллеру?

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

...