Разрыв динамических моделей бритв - PullRequest
1 голос
/ 17 февраля 2012

Я создал сайт C # Razor без явных определений модели, опираясь на ключевое слово dynamic для представления моей модели. Тем не менее, это сейчас ломается, потому что говорит, что «объект не содержит члена X». Это содержит это; intellisense показывает это, но все, что использует модель, когда она динамическая, ломается. Даже добавление @model dynamic не работает.

Переход на явную модель работает, так что я делаю это, но что может привести к тому, что динамическая поддержка перестанет работать в процессе?

EDIT:

Мой контроллер просто делает это:

public ActionResult List()
{
  return View(new
  {
     Data = repos.GetData() 
  });
}

и использует его напрямую:

@{ Title = "X" }

@foreach (var item in Model.Data)
{
   Render
}

Модель и данные не равны нулю, и есть действительные данные.

Спасибо.

Ответы [ 2 ]

1 голос
/ 17 февраля 2012

Если вы хотите использовать динамические типы для передачи, вы должны использовать свойство ViewBag.Ваш код может выглядеть следующим образом:

public ActionResult List()
{
  ViewBag.Data = repos.GetData();

  return View();
}

Ваше мнение:

@foreach (var item in ViewBag.Data)
{
   Render
}

Я пытался заставить ваш код работать, но я также выдает ту же ошибку.

0 голосов
/ 17 февраля 2012

Попробуйте это:

Модель:

public ActionResult List()
{
   dynamic returnModel = new ExpandoObject();
   returnModel.Data = repos.GetData();
   return View(returnModel);
}

Просмотр:

@{ 
  ViewBag.Title = "title";
}

@foreach (var item in Model.Data)
{
   // html for item
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...