レイアウトを使用するすべてのビューで実行する必要がないように、共有レイアウト ビュー ページに依存関係を挿入しようとしています。
ビューに依存関係を挿入するための wikiのガイダンスに従いましたが、プロパティは常に 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
<!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));
レイアウトを使用する「子」ビューは、CustomViewPage から派生しません。