2013-06-28 12 views
10

Mam następujący model:Jak wyświetlić kolekcję w widoku projektu 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(); 
    } 
} 

Jak widać, zdefiniowałem całą kolekcję.

Dlaczego?

Potrzebuję renderować dane w tabeli dla użytkownika, ponieważ istnieje kilka wierszy, które należą do dokładnego/unikalnego użytkownika (np. 20-30 elementów sklepu jest kierowanych do pojedynczego klienta).

Dostaję dane z DB za pomocą ADO.NET Entity. Pytanie wiążące do instancji modelu w Controller zostało wykonane i nie mam z tym problemu, robię to tylko z pytaniem renderowania.

Myślę, że może być używany z rzeczami @for, ale nie wiedziałem, jak byłoby lepiej, używając zwłaszcza mojego własnego modelu.

Jak mogę renderować dane za pomocą mojego modelu w View?

Dzięki!

+1

Tak, należy zapoznać się z listą i wyświetlić każdą umowę. –

Odpowiedz

11

Zobacz poniższy widok. Po prostu przejdziesz do swojej kolekcji i wyświetlisz kontrakty.

Kontroler:

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

     return View(model); 
    } 
} 

Widok:

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

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

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

<% } %> 

</table> 

Razor:

@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

Czy twój kod jest akceptowalny dla Brzytwy ASP.NET MVC 4? –

+0

To nie brzytwa, ale można go łatwo dostosować ... –

4

Jeśli akcja zwraca List umów można wykonać następujące czynności w widoku:

@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> 
} 
Powiązane problemy