私が一度定義したいと思っているような複雑なレイアウトを繰り返しているのであれば、箱の空想的なグリッドを考えてみてください。グリッド(グリッド内ではない)、例えば1つのページには製品サマリのファンシーグリッドがあり、別のページにはカテゴリ紹介のファンシーグリッドがあります。 MVC3を実装するための最も賢明なパターンは何ですか?ASP内のビュー内でのビューの繰り返しMVC3
0
A
答えて
2
ディスプレイテンプレートを使用できます。
public class MyViewModel
{
public IEnumerable<SomeViewModel> Models { get; set; }
}
とビューでDisplayForヘルパーを使用します:たとえばタイプEnumerable<SomeViewModel>
であり、あなたのビューモデルのプロパティを定義する
@model MyViewModel
@Html.DisplayFor(x => x.Models)
は自動的用にレンダリングされるカスタム表示テンプレートを定義しますモデルコレクションの各要素(~/Views/Shared/DisplayTemplates/SomeViewModel.cshtml
):
@model SomeViewModel
<div>
@Html.DisplayFor(x => x.SomeProperty)
...
</div>
を鋳型ヘルパーが慣例で動作します。既定では、最初に~/Views/CurrentController/DisplayTemplates
フォルダー、次に~/Views/Shared/DisplayTemplates
フォルダーにコレクションプロパティ(SomeViewModel.cshtml
)の名前と同じ名前のテンプレートが表示されます。
0
繰り返しセクションを部分ビューに移動することができます。そして、部分図はどこにでも
0
ストア・コントローラーでのアクションGenreMenu再利用できること:Viewで
[ChildActionOnly]
public ActionResult GenreMenu()
{
var genres = storeDB.Genres.ToList();
return PartialView(genres);
}
これは部分図を3回繰り返すことになります:私は@htmlを行う場合は、申し訳ありません
@for (int i = 0; i < 3; i++)
{
Html.RenderAction("GenreMenu", "Store");
}
関連する問題
- 1. 繰り返しビュー機能を複数のビューに含める?
- 2. ビュー内のJavascriptからMVC3モデルプロパティにアクセス
- 3. Kohana - ビュー内のビュー
- 4. silverlight MVVMビュー内のビュー
- 5. バックボーン内のビュー内のコールルート
- 6. ASP .NETの繰り返しタスク
- 7. ビュー内の部分ビューを返すアクションをレンダリングする
- 8. SQL Serverビューの最適化ヘルプ(繰り返しサブクエリ、ケースなど...)
- 9. Asp.net MVC Razorビューの繰り返しを減らす
- 10. 部分ビュー内のアクションに基づいて、メインビュー内でいくつかの部分ビューを返します。
- 11. ビュー内のビューのグリッドまたはタイルアルゴリズム
- 12. テーブル内の列を繰り返す
- 13. 単一のアクティビティでビューを繰り返す
- 14. ビュー内のCodeIgniterヘルパー
- 15. ココアタッチ - ビュー内のUITableView
- 16. ビュー内のExtJSウィジェット
- 17. Recycler NestedScrollView内のビュー
- 18. ビュー内の条件
- 19. MVC - ビュー内のデータソースコンテナ
- 20. wpfページナビゲーション内のビュー
- 21. Cocoa:NSViewControllerビュー内のセッター
- 22. フラグメント内のRecyclerビュー
- 23. 他のビュー内で見る
- 24. ビュー内での表示
- 25. ビューのブロック表示がDrupal 6のコンテンツを繰り返す。
- 26. 別のビュー内にビューをロードする
- 27. ビュー内のネストされたビュー
- 28. ログ内でのログの繰り返しのログ4j
- 29. MVCビューは繰り返しHTMLを防止します
- 30. マップ内でのfind()の繰り返しと使用C++
を.DisplayFor(x => x.Models)の場合、グリッドレイアウトを定義するループはどこに収まるのですか? – stovroz
どこにもありません。それはあなたのために自動的にそれを行い、各アイテムのために表示テンプレートをレンダリングするフレームワークです。ループを記述する必要はありません。 ASP.NET MVCは、モデルが 'IEnumerable'を実装していることを自動的に認識しますので、ループします。それは慣習によって動作します。すべてが設定上の慣例です。 –
しかし、グリッドのHTMLはどこにありますか? – stovroz