2016-03-31 8 views
1

Hallo Ich habe in der letzten Stunde versucht, mein C# Backend mit dem Frontend zu verbinden, um eine Liste auszugeben. Ich habe mich immer gefragt, wie man am besten Daten vom Backend zum Frontend weiterleitet.Wie führe ich die Liste vom Backend zum Frontend in ASP.NET

In meinem Szenario möchte ich nur eine einfache Liste aus in mvc ausgeben, aber wie sende ich meine Liste an das Frontend, so kann ich etwas Einfaches wie die Ausgabe aller Daten in einer Tabelle mit etwas wie eine foreach:

foreach (var value in customerList) { 
<p>value.Name</p> 
} 

ich an der Lösung ausgesehen haben in diesem Link vorgeschlagen: How to pass List from Controller to View in MVC 3. von archil

aber ich kann nicht herausfinden, wo geschützt interne Viewresult Ansicht ( Objektmodell ) setzen

Wie kann ich meine Liste ausgeben? Ich weiß, dass die Liste Inhalt enthält, da ich einen Haltepunkt gesetzt habe und durchgegangen bin.

Dies ist, wie mein Code wie folgt aussieht:

public List<Customer> customerList = new List<Customer>(); 
    public ActionResult Index() 
    { 

     var client = new CustomerAzureAPIApp(); 
     var response = client.Customer.Get(); 
     var customers = response; 

     foreach (var customer in customers) 
     { 
      customerList.Add(customer); 
     } 

     return View(); 
} 

Ich weiß, ich ViewBag verwenden können, aber ich will kein neues ViewBag für jedes Element in der Liste erstellen, würde ich lieber senden Sie einfach die ganze Liste. Irgendwelche Vorschläge?

Antwort

3

Nun, ich weiß nicht, über die beste Lösung, aber Verwechsle dich nicht über den von archil in deinem Link angegebenen Code.

Sie könnten einfach nur Ihre Kundenliste mit den

return View(customerList); 

als Argument übergeben, weil das Codezeile unter Verwendung des Modells automatisch ein Viewresult-Objekt erstellt, das einen Blick auf Antwort macht.

<table 
    <tr> 
     <th>ID</th> 
     <th>Name</th> 
    </tr> 
    @foreach (var item in Model) 
    { 
     <tr> 
      <td>@item.Name</td> 
     </tr> 
    } 
</table> 

Denken Sie daran, bevor Sie Ihren Artikel „@“ haben, weil wir mit Razor view-Motor handeln:

Also in Ihrem Front-End könnten Sie so etwas wie dies für die Tabelle am Ende tun.

0

In Sie sehen Sie das Modell erklären müssen, die es binded werden sollte, und dann durchlaufen sie:

@model List<Customer> 

@foreach (var value in Model) { 
<p>value.Name</p> 
} 

Die sceond, was Sie Ihre Liste müssen zurück, um von Aktion zu sehen, so ändert sich die folgende:

return View(); 

zu:

return View(customerList); 
1

Wie zuvor gesagt, Sie das Modell durch Rücksendung der Liste in der

return View(*insert list here*); 

und als Ihrer Ansicht nach Ansicht verwenden können:

@model List<*insertTypehere*> 

und in Ihrem foreach würden Sie den Variablennamen verwenden

Es gibt einen anderen Weg, indem Sie nichts in der Ansicht zurückgeben und den Viewbag in Ihrem contr verwenden Oller.

Viewbag.TheNameYouWish = *insert list* 

und Ihrer Ansicht nach könnten Sie:

@Viewbag.TheNameYouWish 

so entweder

@foreach (var item in Model) 

oder

@foreach (var item in @Viewbag.TheNameYouWish) 

macht die Arbeit.

Verwandte Themen