2017-05-31 2 views
0

Hier ist mein Code für das Modell, für die Namen und IDs zurückzugibt ...Schleife durch MVC-Modell und das Rück

public class AccountType 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 

    public static AccountType[] ValidAccountTypes 
    { 
     get 
     { 
      return new[] 
     { 
      new AccountType 
      { 
       Id = 1, 
       Name = "Vendor" 
      }, 
      new AccountType 
      { 
       Id = 2, 
       Name = "Customer" 
      }, 
      new AccountType 
      { 
       Id = 3, 
       Name = "Demo" 
      } 
     }; 
     } 
    } 
} 

ich in HTML und eine Schleife über die folgenden zurückzukehren versuchen:

@model DemoApplication.Models.AccountType 

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

Ich bekomme den Fehler von "System.NullReferenceException: 'Objektreferenz nicht auf eine Instanz eines Objekts festgelegt." Ich bin mir nicht ganz sicher, was ich hier machen soll, da ich MVC ganz neu bin ... Ich habe die Dokumentation ein wenig gelesen, um nicht in Anspruch zu nehmen.

Update: habe es selbst durch Versuch und Irrtum herausgefunden!

@foreach (var x in DemoApplication.Models.AccountType.ValidAccountTypes) 
    { 
     <p> @x.Name </p> 
    } 
+0

Bitte geben Sie auch die Aktionsmethode im entsprechenden Controller an, da Sie das ViewModel an die Ansicht übergeben würden. – Sigge

+2

'Model.Name' ist eine Zeichenkette, Sie wollen über' Model.VaidAccountTypes' eine Schleife machen und '@x.Name' ausgeben. –

+0

Danke Paul, das macht Sinn, aber wenn ich den Loop zu ändern, dass es immer noch Fehler – sm1l3y

Antwort

1

Ich hoffe, dass Sie selbst die Lösung bekommen, aber man kann auch mit dem folgenden Code versuchen, die Vorteile haben

@model DemoApplication.Models.AccountType 

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

Durch die oben setzen, können Sie stark Ansichten geben haben, das wird nützlich in vielerlei Hinsicht.

Vorteil der stark typisierte Ansichten:

Wir bekommen 1. Intellisense und 2. Kompilierzeitfehler Überprüfung

Hoffe, dass die oben war nützlich, bitte senden Sie mir Ihre Gedanken oder Feedbacks wissen

Dank

Karthik