2009-10-12 8 views
1

J'ai eu un projet ASP.NET MVC 1.0 fonctionnant avec des vues fortement typées. Ils ne fonctionnent plus après la mise à niveau vers ASP.NET MVC 2.0 Preview 2.Les vues fortement typées dans ASP.NET MVC 2.0 Preview 2 ne fonctionnent plus

La propriété Model est maintenant un Object au lieu du type demandé.

J'ai ceci:

<%@ Language="C#" 
    Inherits="System.Web.Mvc.ViewUserControl<IEnumerable<TechHelp.Core.Models.Ticket>>" %> 

Je reçois

CS1579: foreach ne peut pas fonctionner sur des variables de type 'objet' parce que 'l'objet' ne contient pas de définition publique pour 'GetEnumerator'

Modifier ce que quelqu'un a une idée de pourquoi cela ne fonctionne pas?

+0

@Daniel, quelle est votre question? Cela pourrait-il être mieux placé comme un rapport de bogue à l'équipe MVC? – Lazarus

+0

convenu, cela devrait être signalé directement à l'équipe –

+0

a fait ce travail dans 1.0? – mxmissile

Répondre

0

Nous avons eu la même chose dans ASp.Net MVC2 (la version publiée). Toutes les vues fortement typées pensaient qu'elles travaillaient sur le type "Object" au mépris de la déclaration en haut du fichier. Si les vues ont été compilées à l'avance, elles n'ont pas pu être compilées. Sinon, ils ont échoué lors de l'accès à la page.

Le projet était dans VS2010 et Asp.Net 2.0, mis à jour à l'origine à partir de VS2008 et ASP.Net 1.0. Un nouveau projet Asp.Net MVC n'a pas connu les mêmes problèmes, mais lors de la copie du code dans une nouvelle solution, les mêmes problèmes ont refait surface.

La cause est que le processus de mise à niveau a changé les références du projet de ASP.Net MVC 1.0 à ASP.Net MVC 2.0, mais les fichiers web.config faisaient toujours référence à ASP.Net MVC 1.0. Mise à jour de ceux-ci pour correspondre as per the instructions et en ajoutant dans la liaisonRedirect l'a résolu.