2012-03-26 64 views
0

我在從我的視圖調用模型屬性時遇到問題。我可能不得不在視圖中創建它的一個實例。從視圖調用模型

錯誤消息:未將對象引用設置爲對象的實例。但是在模型中它工作正常。

查看:

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

型號:

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

你應該從你的控制器將數據傳遞到您的視圖。使用'ViewBag' – 2012-03-26 20:22:56

+1

有什麼問題? – cadrell0 2012-03-26 20:23:22

+0

未將對象引用設置爲對象的實例。 – tdjfdjdj 2012-03-26 20:28:52

回答

1

您的控制器應該決定爲視圖添加所需的數據。重構使用數據集以外的內容。

//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 

在你看來:

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

你應該初始化DataSets財產在你的控制器,或者更好的是,在模型的構造。除非有明確的理由,否則集合屬性不應該爲空。

當然,在這種特殊情況下,您應該在引用它之前檢查字典中是否存在「test」。