私はASP.NET Coreアプリケーションを開発中です。コントローラをリーンに保つために、ほとんどのデータ操作はViewModelで行われます。すべてが正常に動作します - 二つの問題は、しかし、ControllerContext情報にアクセスすることはできませんViewModelのコントローラデータにアクセスする
のviewmodelsある(または私はそれを取得する方法を見つけ出すことはできません)。たとえば、セッション、ユーザー、その他のコントローラは無料で入手できます。
ViewModelsは依存性注入を受け付けません(やはり、それをどうやって渡すかわかりません)。例えば、私がコンストラクタ
でMyController(ApplicationDbContext db)
を持っていれば、私はdb
が問題なく渡されます。私はComplexViewModel(ApplicationDbContext db)
を持っている場合しかし、私は渡されたnull
が得る。もちろん、私は今、私は明示的にViewModelにするコントローラーから要求されるものは何でも渡していますまったく同じservices.AddDbContext<ApplicationDbContext>()
スタートアップ
を持っています。しかし、より良い方法があるはずです。
あなたのViewModelsには動作がなく、すべての動作をカスタムサービスに移行することをお勧めします。これはあなたの問題を解決するはずです。 –