2

UnityでMVC4とDependencyResolverを使用しています。Brad Wilson のブログ ページhttp://bradwilson.typepad.com/blog/2010/07/service-location-pt3-views.htmlのように、ビューに依存性注入を使用したいと考えています。しかし、MVC4 ビュー エンジンは DependencyResolver を介してビュー ページ クラスを作成しようとしないようです。そうですか、それとも私は何か間違ったことをしていますか?これが私のコードです:

public static void Register() {
        var unity = new UnityContainer();
        unity.RegisterType<SpaceProject.Models.SpaceShipEntities>(new RequestLifetimeManager());
        DependencyResolver.SetResolver(new UnityDependencyResolver(unity));

}

public abstract class SharedView : WebViewPage
{
    [Dependency]
    public SpaceProject.Models.SpaceShipEntities Context { set; get; }
}

と私の _Layout.cshtml:

@inherits SharedView
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html>
<head></head>
    <body>
    @foreach (var menu in Context.Menu) { 
                            <li>
                                <a href="#">@menu.Title</a> |
                            </li>    
                        }
    </body>
    </html>

Context が null であるというエラーが発生しました。

4

1 に答える 1

0

@inherits SharedView が _Layout.cshtml で機能しないのは、ビューではなく、マスター ページのように使用されるためだと思います。ビューと部分ビューでは、すべてが完璧に機能します。

于 2012-09-17T07:54:20.033 に答える