Still Learning MVC3、EF。今のところ私はMySqlに接続していますが、それは関係ないと思います。簡単にするために、テストアプリケーションに1つのデータベースを使用することにしました。データを区別するカテゴリを追加しました。たとえば、ニュース、イベント、情報、ページカテゴリがあります。例えば、ホームページなどのビューにコンテンツを掲載する場合、最新の5つのニュース項目(ニュースカテゴリ)、最新の5つのイベント(イベントカテゴリ)、ウェルカムテキスト(情報カテゴリ)をリストしたいと思います。私は、ホームページのさまざまなセクションでこれらを表示するためにpartialViewsを作成することができました。しかし、私はこれらのPartialViewのそれぞれで同じテーブルを何度も何度も何度もクエリしていて、LINQクエリでwhere cat=....
でフィルタリングしているので、間違ってこれをやっているようです。 これが練習であるべきかどうかを確認してください。これを行うにはより良い方法がありますか?MVC3パーシャルビュー
2
A
答えて
6
あなたは、次の操作を行うことができます:
コントローラー:
public ActionResult Home()
{
IEnumerable<MyDateRecords> myData = LinqQueryToGetAllTheDataUnFiltered();
ViewData.Model = new MyViewData { MyData = myData; }
return View();
}
のViewModelクラス:
public class MyViewData
{
List<MyDataRecords> MyData { get; set; }
List<MyDataRecords> News { get { return MyData.Where(m => m.Category = "News"); } }
List<MyDataRecords> Events { get { return MyData.Where(m => m.Category = "Events"); } }
}
ビュー:
@model MyViewModel
@Html.Partial("NewsPartial", Model.News)
@Html.Partial("EventsPartial", Model.Events)
部分:
を@model IEnumerable<MyDataRecord>
我々は一度だけデータを照会し、ちょうどこれはかなり非効率的である各部分
0
このタイプのデータを提示する単純な方法については、あなたがしていることは問題ありません。コントローラで使用するPartialViewメソッドについては、OutputCacheAttributeを参照してください。
0
に異なるセットを通過したこの方法です。しかし、データベースにクエリすることは、しばしば任意の要求のボトルネックであるため、これに気づいたことは良いことです。
まず、そのデータをディクショナリまたはモデルに取得してから、部分ビューに渡して、Bassamの概要と同様にレンダリングする必要があります。理想的には、これはコントローラでMVCのパラダイムを守り、その後メインビューに渡され、適切なデータが部分ビューに渡されます。
ASP.NET MVCの高度な使い慣れた知識を身に付けたら、キャッシュの調査を開始できます。あなたが更新/同期/などについて心配する必要があるので、急速に変化しているデータを持っていれば、ややこしいことになるので、今はキャッシュしていません。
関連する問題
- 1. HTTPPostのASP.NET MVC3パーシャルビュー
- 2. MVC3パーシャルビューOutputCacheを親ビューでオーバーライドする
- 3. MVC3のメインビューとパーシャルビューのデータを含むHTTPPOSTを作成する
- 4. MVC3面倒なビューエンジン、パーシャルビュー作成時のエラー
- 5. パーシャルビュー
- 6. スクリプトとcssをMVC3のレンダリング/パーシャルビューに含める最も良い方法
- 7. パーシャルビューは、jQueryの
- 8. htmlHelper対パーシャルビュー
- 9. パーシャルビューとajax
- 10. パーシャルビューのスローレンダリング
- 11. パーシャルビューの実装
- 12. MVCパーシャルビュー、モデルなど
- 13. ビューまたはパーシャルビュー
- 14. パーシャルビューからのアクセスモデル
- 15. パーシャルビュー、HTMLヘルパーなど
- 16. MSChartとASP.NET MVCパーシャルビュー
- 17. パーシャルビューにId値を渡す
- 18. Jsonと複数のパーシャルビュー
- 19. パーシャルビューとは何ですか?
- 20. ノックアウトJs、JQuery UIダイアログ、パーシャルビュー
- 21. MVC3パーシャルビューにはコントローラが必要ですが、非公開にすることはできますか?
- 22. パーシャルビューにデータを入力する
- 23. パーシャルビューの条件文、悪い習慣?
- 24. ページロード時のパーシャルビューの読み込み
- 25. 自動更新機能付きMVCパーシャルビュー
- 26. MVCコントローラでナビゲーション用パーシャルビューを生成
- 27. パーシャルビューに正しいモデルを渡す
- 28. パーシャルビューはマスターレイアウトから継承します
- 29. パーシャルビューとログオン時のモデルとの競合
- 30. ASP MVCパーシャルビューでセクションを定義する
非常に精巧な@Bassam Mehanniありがとう – Diin
私は助けてくれることを嬉しく思います。このスタイルでは、この種のデータを表示するビューであるViewModelを追加していますが、実際にモデルで完全ではない、それはビューに直接関連している単純なロジックを持っている必要があります –
あなたの提案されたソリューションはエラーを生成しています – Diin