ASP.NET Mvc Вопрос - PullRequest
       6

ASP.NET Mvc Вопрос

0 голосов
/ 14 мая 2011

Я написал что-то подобное в контроллере.

   public ActionResult Giris()

    {

        ViewData["Tarif"] = (from t in _entities.Tarif

                             join k in _entities.Kullanici on t.KID equals k.KID

                             select new {KAdi = k.KAdi, TAdi = t.TAdi})

                             .Take(4);



        return View();

    }

Я использую его, как показано ниже на странице просмотра.

<% foreach (var item in (IEnumerable<dynamic>)ViewData["Tarif"]) {  %>

<div class="begenilen-video" style="float:left">

<img class="video-resmi" alt="reklam" src="../../Uygulama/Resimler/Reklam/1.jpg" />

<span class="benzer-yemek-tarifi-adi"></span><%=item.TAdi %><br />

<span class="benzer-yemek-tarifi-ekleyen">Ekleyen: </span><br />

<span class="benzer-yemek-tarifi-izlenme">İzlenme: </span>

</div>

<% } %>

Однако я получаю сообщение об ошибке ввыберите оператор. Как вызвать элементы на странице просмотра?

Заранее спасибо.

1 Ответ

1 голос
/ 14 мая 2011

Как предположение, потому что вы не опубликовали ошибку:

Объект, хранящийся в ViewData["Tarif"], будет иметь тип IQueryable<T>, где T - анонимный объект, и, по вашему мнению, вы приводите к IEnumerable<dynamic>. IQueryable также загружается лениво, поэтому вы будете пытаться выполнить ваш запрос после удаления объекта.

Вы действительно должны создать строго типизированную модель представления

public class ViewModelType {

  public IEnumerable<TarifType> Tarif { get; set; }

}

Тип тарифа

public class TarifType {

  public string KAdi { get; set; }
  public string TAdi { get; set; }

}

контроллер

public ActionResult Giris() {

  var viewModel = new ViewModelType();

  viewModel.Tarif = (from t in _entities.Tarif
                       join k in _entities.Kullanici on t.KID equals k.KID
                       select new TraifType { KAdi = k.KAdi, TAdi = t.TAdi }
                     ).Take(4)
                     .ToList();

   return View(viewModel);
}

вид

<% foreach (var item in viewModel.Tarif) {  %>
  <div class="begenilen-video" style="float:left">
    <img class="video-resmi" alt="reklam" src="../../Uygulama/Resimler/Reklam/1.jpg" />
    <span class="benzer-yemek-tarifi-adi"></span><%=item.TAdi %><br />
    <span class="benzer-yemek-tarifi-ekleyen">Ekleyen: </span><br />
    <span class="benzer-yemek-tarifi-izlenme">İzlenme: </span>
  </div>
<% } %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...