2011-05-14 4 views
-2

J'ai écrit quelque chose comme ça dans le contrôleur.ASP.NET Mvc Question

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(); 

    } 

Je l'utilise comme ci-dessous dans la page de visualisation.

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

<% } %> 

Cependant, je suis recevoir l'erreur dans la sélection statement.How que j'invoque les articles dans la page de vue?

Merci d'avance.

+4

Quelle est l'erreur? – Rob

Répondre

1

Comme une estimation parce que vous ne l'avez pas posté l'erreur:

L'objet étant stocké dans ViewData["Tarif"] sera du type IQueryable<T> où T est un objet anonyme et à votre avis vous casting à IEnumerable<dynamic>. IQueryable est également chargé paresseusement de sorte que vous allez essayer d'exécuter votre requête une fois que l'objet a été éliminé.

Vous devriez vraiment créer un modèle de vue fortement typé

public class ViewModelType { 

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

} 

type Tarif

public class TarifType { 

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

} 

contrôleur

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); 
} 

vue

<% 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> 
<% } %>