2010-04-26 5 views
0

Action de contrôleur:pas fortement problème de vue typé

public ActionResult Index() 
    { 
     probaEntities proba = new probaEntities(); 
     probaEntities proba1 = new probaEntities(); 
     probaEntities proba2 = new probaEntities(); 

     var query = from i in proba.name 
        from j in proba1.id_person 
        from k in proba2.last_name 
        select new 
        { 
         i.ime, 
         j.id, 
         k.prezime 
        }; 
     return View(query); 
    } 

page Voir:

<table> 
     <tr> 

     <th> 
      ime 
     </th> 
     <th> 
      broj 
     </th> 
     <th> 
      prezime 
     </th> 
    </tr> 

<% foreach (var item in Model) { %> 

    <tr> 

     <td> 
      <%= Html.Encode(item.name) %> 
     </td> 
     <td> 
      <%= Html.Encode(item.id_person)%> 
     </td> 
     <td> 
      <%= Html.Encode(item.last_name)%> 
     </td> 
    </tr> 

<% } %> 

</table> 

Que écrire dans Inherits = "???" ? Cette vue n'est pas fortement typée parce que j'ai des données de poste à partir de 3 tables. Dois-je faire un modèle spécial pour cette vue y at-il une solution plus courte?

Répondre

1

Vous pouvez utiliser

<%@ Page Title="" Language="C#" Inherits="System.Web.Mvc.ViewPage" %> 
+0

Dans ce cas j'ai cette erreur: foreach instruction ne peut pas fonctionner sur des variables de type 'object' car 'object' ne contient pas de définition publique pour 'GetEnumerator' – Ognjen

+0

Si vous voulez énumérer, vous pouvez créer votre propre classe représente votre modèle de données et implémente IEnumerable. Ensuite, vous utiliserez 'Inherits =" System.Web.Mvc.ViewPage "', en passant cela dans la vue du contrôleur bien sûr. – RedFilter

+0

Peut le faire sans ma propre classe qui représente le modèle de données – Ognjen

1

Vous ne pouvez pas passer un type anonyme comme un argument de type générique, sauf si vous souhaitez implémenter System.Web.Mvc.ViewPage <dynamique> - et le code, votre vue d'espérer pour le meilleur. (Vous devez également utiliser .NET 4!)

La création d'un modèle de vue typé fort sera probablement votre meilleur choix.

+0

A la fin, je voudrais créer un modèle de données. J'utilise .NET 3.5 – Ognjen

Questions connexes