2012-01-15 14 views
0

I持ってAdminDetailインスタンスのコレクションを返し、次のアクションメソッド:は、どのように私は私のMVC3のビューにオブジェクトのコレクションを渡すことができますか?

public ActionResult DetailData() 
    { 
     var vm = _reference.Detail().ToList(); 
     return PartialView("~/Areas/Administration/Views/References/_DetailData.cshtml", vm); 
    } 

ここに私のAdminDetailクラスです:私はモデルに置くべきか、私のかみそりビューで

namespace Storage.Models 
{ 
    public class AdminDetail 
    { 
     public string PartitionKey { get; set; } 
     public string RowKey { get; set; } 
     public string Title { get; set; } 
     public string Status { get; set; } 
     public string Type { get; set; } 
     public string Level { get; set; } 
     public string Order { get; set; } 
     public int Row { get; set; } 
    } 

は?私は次のように置く場合、それは一つだけです:

@model Storage.Models.AdminDetail 

    @foreach (var detail in Model.AdminDetails) 
    { 

は、どのように私はビューに私のモデルを使用してAdminDetailsのコレクションを渡すことができますか?私はviewdataがオプションであるかどうかは分かりませんが、実際には良い選択ではないと聞いているので、むしろそれを使用しません。

あなたは要素をループできるように、あなたはあなたのビューモデルタイプとして AdminDetailのコレクションを使用することができ

答えて

5

@model IEnumerable<Storage.Models.AdminDetail> 
@foreach (var detail in Model) 
{ 
    <div>@detail.Title</div> 
    ... 
} 

たり、ループを避けることができる表示テンプレートを使用して:

@model IEnumerable<Storage.Models.AdminDetail> 
@Html.DisplayForModel() 

をそして自動的に収集(~/Views/Shared/DisplayTemplates/AdminDetail.cshtml)の各要素に対してレンダリングされる対応する表示テンプレート内側:

@model Storage.Models.AdminDetail 
<div>@Html.DisplayFor(x => x.Title)</div> 
... 
+0

+1合理的な仮定所与その '.ToList()'この場合に戻り、 'IEnum <>' –

+0

ダーリンありがとう –

+0

偉大な答えをありがとう。ただ一つの質問。私があなたの道を試してみると、私は@detailにintellitypeを得られないことを示唆している。それは期待されますか? –

1

あなたのモデルとしてのリストを設定することができます - MVC3でのモデルは、あなたが望む何もすることができます。ビューのモデルとしてListを設定するだけです。 (私はあなた緩いのIntelliSenseとしてそれを乱用することはお勧めしませんが)

また、ViewBagを使用しています。 ViewBagは、ViewとControllerの両方から利用可能な、動的に型定義された辞書のようなものです。 はここに例を示します。

コントローラー:

ViewBag.Color = "Blue"; 

閲覧:

<h1> The color is <%: ViewBag.Color %> </h1> 
+0

ありがとうございました。もし私がそれをしたら、最初の行にどのように指定すればいいですか? @model Storage.Models.IEnum は大丈夫でしょうか? –

+0

他の回答が、それは右だ: @modelのIEnumerable (または、あなたが代わりに一覧を言うが、依存関係逆転のために何人かの人々がそれを好きではない理由からでき) –

関連する問題