先週、ASP.NET MVC3で開発されたブログエンジンのソースコードをダウンロードしました。コードを分析するとき、私は、彼らがビューモデルを満たすためにデータを取得するために別の方法を使用したことに気付きました。ビューモデルリポジトリをビューモデルで直接インスタンス化する
public ActionResult Details(string slug)
{
var model = new PostDetailsViewModel(UnitOfWork, slug);
return View(model);
}
:
public PostDetailsViewModel(IUnitOfWork unitOfWork, string slug)
{
_repository = new PostRepository(unitOfWork);
Post = _repository.FindBySlug(slug);
}
リポジトリ:
public Post FindBySlug(string slug)
{
return FindAll().SingleOrDefault(x => x.Slug == slug);
}
コントローラ:ここ
は 'ポスト' ビューモデルの一例です
ご覧のとおり、リポジトリはビューモデル(コンストラクタ内)で直接インスタンス化されています。それは正しい方法ですか? コントローラー>>ビジネス>>リポジトリあなたのアドバイスのための
感謝を:
通常、私はこのようなビジネス層、最終的にサービス層を使用していました。
ありがとうDarin、これは私が探していたレスポンスです:)私はビューモデル(2か月前に回答しました)にポピュレートする記事を読んでいます。ここにあります:http://stackoverflow.com/questions/7943039/how-are-you-populating-validating-your-viewmodels – Bronzato