2013-06-28 10 views
10

私は、次のモデルがあります:あなたが見ることができるようにASP.NET MVC 4 Razorプロジェクトのビューにコレクションを表示するには?

public class ContractPlain 
{ 
    public int Id { get; set; } 
    public Guid ContractGuid { get; set; } 
    public int SenderId { get; set; } 
    public int RecvId { get; set; } 
    public int ContractType { get; set; } 
    public string ContractStatus { get; set; } 
    public DateTime CreatedTime { get; set; } 
    public DateTime CreditEnd { get; set; } 
} 

public class Contrtacts 
{ 
    List<ContractPlain> listOutput; 

    public void Build(List<ContractPlain> listInput) 
    { 
     listOutput = new List<ContractPlain>(); 
    } 

    public List<ContractPlain> GetContracts() 
    { 
     return listOutput; 
    } 

    internal void Build(List<contract> currentContracts) 
    { 
     throw new NotImplementedException(); 
    } 
} 

は、私は、全体のコレクションを定義しました。

なぜですか?

正確な/一意のユーザーに属している行がいくつかあるため(たとえば、20-30個のショップアイテムが単一のクライアントに参照されているなど)、ユーザーのテーブルにデータをレンダリングする必要があります。

したがって、ADO.NETエンティティを使用してDBからデータを取得しています。 Controllerのモデルインスタンスへのバインディングの質問が行われていますが、問題はありません。レンダリングの質問のみで行います。

私はそれが@forのものと一緒に使えると思っていましたが、わかりませんでした。私のカスタムモデルを使ってどうすればよいでしょうか。

私のモデルを使用してViewにデータをレンダリングするにはどうすればよいですか?

ありがとうございます!

+1

はい、List をforeachして各契約を表示します。 –

答えて

11

以下のビューを参照してください。あなたはあなたのコレクションを単に監督し、契約を表示するだけです。

コントローラー:

public class ContactsController : Controller 
{ 
    public ActionResult Index() 
    { 
     var model = // your model 

     return View(model); 
    } 
} 

ビュー:

<table class="grid"> 
<tr> 
    <th>Foo</th> 
</tr> 

<% foreach (var item in Model) { %> 

<tr> 
    <td class="left"><%: item.Foo %></td> 
</tr> 

<% } %> 

</table> 

レイザー:

@model IEnumerable<ContractPlain> 

<table class="grid"> 
<tr> 
    <th>Foo</th> 
</tr> 

@foreach (var item in Model) { 

<tr> 
    <td class="left"><@item.Foo></td> 
</tr> 

@} 

</table> 
+0

は、あなたのコードがASP.NET MVC 4 Razorに受け入れられますか? –

+0

それは剃刀ではありませんが、簡単に適応することができます... –

4

あなたの行動は、ビューで次の操作を行うことができます契約のListを返す場合:

@model IEnumerable<ContractPlain> 

@foreach(ContractPlain contract in Model) 
{ 
    <ul> 
     <li>@contract.ContractGuid</li> 
     <li>@contract.SenderId</li> 
     <li>@contract.ContractStatus</li> 
     <li>@contract.CreditEnd</li> 
    </ul> 
}