我正在尝试将依赖项注入到共享布局视图页面中,以避免在使用该布局的每个视图中都必须这样做。
我已按照 wiki 中的指导将依赖项注入视图,但该属性始终为空。
Autofac 可以将属性注入到作为布局文件的自定义视图页面中吗?
这是我的设置。自定义视图页面
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 派生的。