Я пытаюсь внедрить зависимость на страницу представления общего макета, чтобы избежать необходимости делать это в каждом представлении, использующем макет.
Я следовал руководству в вики по внедрению зависимостей в представления, но свойство всегда имеет значение null.
Может ли Autofac вводить свойства на пользовательскую страницу просмотра, которая является файлом макета?
Вот моя установка. CustomViewPage
namespace MyApp
{
using System.Web.Mvc;
public abstract class CustomViewPage : WebViewPage
{
public IHelper Helper { get; set; }
}
}
~/Views/Shared/ _Layout.cshtml
@inherits MyApp.CustomViewPage
...
@if(this.Helper.HasFoo()){@Html.ActionLink("Bar")}
Глобальная регистрация...
builder.RegisterType().AsImplementedInterfaces();
builder.RegisterModelBinderProvider();
builder.RegisterFilterProvider();
builder.RegisterModule(new AutofacWebTypesModule());
builder.RegisterSource(new ViewRegistrationSource());
var container = builder.Build();
DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
«Дочерние» представления, использующие макет, НЕ являются производными от CustomViewPage.