Я пытаюсь ввести зависимость на страницу совместного просмотра макета, чтобы избежать необходимости делать это во всех представлениях, которые используют макет.
Я следил за указаниями в вики для ввода зависимостей в представлениях, но свойство всегда равно нулю.
Может ли 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
<!DOCTYPE html>
<html>
...
@if(this.Helper.HasFoo()){@Html.ActionLink("Bar")}
Глобальная регистрация...
builder.RegisterType<Helper>().AsImplementedInterfaces();
builder.RegisterModelBinderProvider();
builder.RegisterFilterProvider();
builder.RegisterModule(new AutofacWebTypesModule());
builder.RegisterSource(new ViewRegistrationSource());
var container = builder.Build();
DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
Представления "child", которые используют макет, не выводятся из CustomViewPage.