Позвонить модель из представления - PullRequest
0 голосов
/ 27 марта 2012

У меня проблема с вызовом свойства модели с моей точки зрения.Возможно, мне придется создать его экземпляр в представлении.

СООБЩЕНИЕ ОБ ОШИБКЕ: Ссылка на объект не установлена ​​на экземпляр объекта. Однако внутри модели все работает нормально.

Вид:

@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; 

Ответы [ 2 ]

1 голос
/ 27 марта 2012

Ваш контроллер должен принять решение включить необходимые данные для просмотра.Рефакторинг для использования чего-то другого, кроме набора данных.

//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 голос
/ 27 марта 2012

Вы должны инициализировать свойство DataSets в вашем контроллере или, что еще лучше, в конструкторе вашей модели.Свойства коллекции никогда не должны быть нулевыми, если у вас нет явной причины для этого.

Конечно, в этом конкретном случае вам также следует проверить, существует ли в вашем словаре слово «test», прежде чем ссылаться на него.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...