2012-04-06 3 views
0

Kann ich List von meinem Controller in meine View zurückgeben, oder muss ich meine List in eine andere Klasse einbinden, nur um nur eine Klasse zurückzugeben?Kann ich die Liste <MyModel> zu meiner Ansicht von meinem Controller zurückgeben? (MVC3)

Wenn dies möglich ist, wie kann ich über die Liste iterieren? Ich versuche, diesen (Razor), aber Visual Studio ist nicht glücklich darüber:

@model List<QueueItem> 
. 
. 
. 
@foreach (item in @Model) 
+1

Ja, Sie können es tun, aber bis Sie die eigentliche Ausnahme veröffentlichen, wird es meist im Dunkeln raten, wie Sie Ihr Problem lösen. –

+0

"Das Symbolelement kann nicht aufgelöst werden." – birdus

+0

Sieht so aus, als ob das Problem in deiner 'foreach' Zeile liegt, probiere' @foreach (var item in @Model) '. –

Antwort

0

Sie können es auf diese Weise zu tun, aber ich nie wieder meine Domain direkt zu einer Ansicht Objekte. Normalerweise habe ich ein Ansichtsmodell für eine Ansicht, die nur die Felder enthält, die ich für diese Ansicht benötige.

Ihr Szenario Da würde ich in einer Ansicht Modell diese Liste habe:

public class MyViewModel 
{ 
    public IEnumerable<QueueItem> QueueItems { get; set; } 
} 

In Ihrer Aktion Methode füllen Sie diese Elemente aus einem Dienst/Repository Anruf und dann würde diese Ansicht Modell zur Ansicht zurückgegeben werden :

public ActionResult List() 
{ 
    MyViewModel viewModel = new MyViewModel 
    { 
      QueueItems = queueItemRepository.GetAllQueueItems() 
    }; 

    return View(viewModel); 
} 

Ihrer Ansicht nach würden Sie die Artikel und do-Schleife durch das, was getan werden muss:

@foreach (var item in Model.QueueItems) 
{ 
} 

Ich hoffe, das hilft.

Verwandte Themen