2012-03-26 13 views
0

Ich habe ein Problem beim Aufrufen einer Modelleigenschaft aus meiner Sicht. Ich muss möglicherweise eine Instanz davon in der Ansicht erstellen.Call Model from View

FEHLERMELDUNG: Objektreferenz nicht auf eine Instanz eines Objekts festgelegt. Jedoch innerhalb des Modells funktioniert es gut.

Ausblick:

@model site.Models.modeldata 
    @foreach (System.Data.DataRow row in Model.DataSets["test"].Tables[0].Rows) 
    { 
     @:row["id"] 
    } 

Modell:

public IDictionary<string, DataSet> DataSets { get; private set; 
+0

Sie Daten von Ihrem Controller zu Ihrer Ansicht sollte vorbei. Verwenden Sie 'ViewBag' –

+1

Was ist das Problem? – cadrell0

+0

Objektverweis nicht auf eine Instanz eines Objekts festgelegt. – tdjfdjdj

Antwort

1

Ihr Controller sollte entscheiden, die erforderlichen Daten für die Ansicht anzugeben. Refactor, um etwas anderes als ein Dataset zu verwenden.

//build up a collection in the controller 
var items = new List<Customer>(); 
items.Add(new item{ ID = 4, CustomerName="user123"}); 
ViewBag.items = items; //pass to the view via ViewBag, a dynamic object 

Ihrer Ansicht:

@foreach (var item in ViewBag.items) 
{ 
    @:item.ID + " " + item.CustomerName 
} 
1

Sie sollen die DataSets Eigenschaft in Ihrem Controller initialisieren, oder besser noch, im Konstruktor des Modells. Sammlungseigenschaften sollten niemals null sein, es sei denn, Sie haben einen expliziten Grund dafür.

Natürlich sollten Sie in diesem speziellen Fall auch prüfen, ob "test" in Ihrem Wörterbuch vorhanden ist, bevor Sie darauf verweisen.

Verwandte Themen