Невозможно выполнить конструктор внедрение.Но вы можете сделать что-то вроде этого, скажем, с помощью Ninject:
public abstract class CustomViewBase<TModel> : WebViewPage<TModel> where TModel : class
{
[Inject]
public IFace Face
{
get;
set;
}
}
И, предполагая, что вы настроили IDependencyResolver в Global.asax, вы должны правильно инициализировать свойство @Face. Но одно важное предостережение: вы не можете получить доступ к @Face в _Layout.cshtml, потому что (согласно Брэду Уилсону) Layout работает вне MVC, и @Face будет нулевым, когда вы попытаетесь получить к нему доступ на странице макета.
В любом случае я согласен с другими в том, что представление не должно иметь дело с какой-либо сложной логикой.