2012-03-26 25 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'を使用してください –

+1

何が問題なのですか? – cadrell0

+0

オブジェクト参照がオブジェクトのインスタンスに設定されていません。 – tdjfdjdj

答えて

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プロパティを初期化、または必要があります。明示的な理由がない限り、コレクションのプロパティはnullになることはありません。

もちろん、この特定のケースでは、参照する前に "test"が辞書に存在することを確認する必要があります。

関連する問題