私は、エラーメッセージがあるthis questionAutofac + MVC3 + Html.Action
と同じ問題を持っている: コントローラの単一のインスタンスは、「Search.Web.Controllers.AdvancedController」処理するために使用することはできません複数のリクエスト。カスタムコントローラファクトリが使用されている場合は、要求ごとにコントローラの新しいインスタンスが作成されていることを確認してください。 Global.asaxの中
コード:
protected void Application_Start()
{
var containerBuilder = new ContainerBuilder();
containerBuilder.RegisterType<AdvancedController>().InstancePerHttpRequest();
containerBuilder.RegisterType<MemoryBodyTypeRepository>().As<IBodyTypeRepository>;
containerBuilder.RegisterType<BodyTypePictureClassFinder>().As<IBodyTypePictureClassFinder>();
var container = containerBuilder.Build();
DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
}
これはAdvancedControllerからいくつかのコードです:
private readonly IBodyTypeRepository _bodyTypeRepository;
private readonly IBodyTypePictureClassFinder _bodyTypePictureClassFinder;
public AdvancedController(IBodyTypeRepository bodyTypeRepository, IBodyTypePictureClassFinder bodyTypePictureClassFinder)
{
_bodyTypeRepository = bodyTypeRepository;
_bodyTypePictureClassFinder = bodyTypePictureClassFinder;
}
[HttpGet]
public ActionResult Index()
{
var advancedSearchViewModel = new AdvancedSearchViewModel();
return View(advancedSearchViewModel);
}
public ActionResult BodyTypes()
{
// this uses the repositories to create the ViewModel
return View(bodyTypesViewModel);
}
とキーワードを表示:
<div>
@Html.Action("BodyTypes","Advanced")
</div>
私は、このビューを実行するとI上記のメッセージを入手してください。また、InstancePerHttpRequestを削除しようとしたり、明示的に登録する代わりにRegisterControllersを使用しようとしましたが、それも機能しませんでした。 RegisterControllerを使用すると、同じエラーが発生します。 InstancePerHttpRequestを削除すると何とかビュー全体が2回実行されますが、これもやりたいことではありません)
私は誰でも助けてくれることを願っています。これは私にとって本当のShowstopperです。
Thansk a lot !!!!
よろしく、 フロリアンFanderl