Je travaille avec un projet ASP.NET MVC qui a été lancé à l'origine à partir du CodeBetter.canvas Projet - Et j'essaie de passer à asp.net MVC 2. J'ai mis à niveau avec succès mon projet à l'aide de L'outil de mise à niveau de Eilon < / a>, déplacé vers VS2010 (bien que pas encore à .NET 4). Le problème que j'ai actuellement ne se produit que lorsque vous utilisez le moteur de vue d'étincelles. Voici le bit de code pertinent à mon avis.Spark (fortement typé): p> le même bit de code fonctionne juste bien em> si j'utilise une vue .aspx: p> le point majeur ici étant "éditeur" est nouveau dans ASP.NET MVC 2 et dans mon projet, je peux utiliser cet assistant dans une vue ASPX, mais Pas une vue sur l'étincelle. P> J'ai essayé Mise à niveau d'étincelle pour utiliser MVC 2 (ainsi que MVCCONTRIB et NIJJECT), pensant que c'était peut-être un de ceux qui paniquaient - mais jusqu'à présent pas de chance - je vois toujours la même chose Comportement. P> Voici le message d'erreur complet qui est jeté de la classe BatchCompiler de la Spark Spark. P> La compilation de la vue dynamique a échoué.
(0,0): AVERTISSEMENT CS1701: En supposant
référence de référence 'system.web.mvc,
Version = 1.0.0.0, culture = neutre,
PublickeyToken = 31bf3856ad364E35 '
Matchs 'System.Web.mvc,
Version = 2.0.0.0, culture = neutre,
PublickeyToken = 31bf3856ad364E35 ', vous
Peut avoir besoin de fournir une politique d'exécution
C: \ inetpub \ wwwroot [myProject] \ codebetter.canvas.web \ vues [myentité] \ View.Spark (9,16):
Erreur CS1061:
'System.web.mvc.htmlHelper' ne fait pas
contenir une définition pour 'éditeur pour "
et aucune méthode d'extension 'éditeur'
Accepter un premier argument de type
'System.web.mvc.htmlhelper' pourrait être
trouvé (avez-vous manqué une utilisation
directive ou une référence d'assemblage?) p>
blockQuote> Voici le code associé à mon global.asax: p> aussi, je me référende système.web.mvc.html dans ma vue d'étincelle Comme mentionné dans une autre réponse . < / p>
6 Réponses :
Lorsque vous avez téléchargé les nouvelles sources d'étincelles, vous l'avez-vous reconsurée en utilisant des assemblages MVC 2? Avez-vous remplacé les références dans Spark Project? P>
Oui - J'ai réaffirmé la phrase dans ma question qui a déclaré "surcridé à la dernière version de Spark" à "Spark améliorée pour utiliser MVC 2" pour clarifier ce que je voulais dire là. J'ai recompanté la source d'étincelles avec des références MVC 2 et incorporé les assemblées résultantes dans mon projet MVC et mis à jour ses références. Aucun changement de message d'erreur. J'ai également examiné les assemblées utilisées dans mon projet dans le réflecteur pour vérifier qu'ils sont référencés System.Web.mvc version 2.0.0.0.
Avez-vous passé le modèle pour voir? Avez-vous défini «
Voici le contenu complet de ma vue:
Et pour clarifier - j'ai une vue.aspx et une vue.Spark - Pour tester l'un ou l'autre, je viens de renommer celui que je ne veux pas utiliser pour autre chose. ASPX Works, Spark ne semble pas être un test valide pour que tout ce qui implique fonctionne correctement jusqu'à ce que j'utilise la vue d'étincelle au lieu de la vue ASPX. Merci pour votre aide et vos pensées, BTW. C'est très apprécié - j'ai été soulevé dessus pendant un certain temps maintenant.
J'ai du mal à construire une nouvelle version de Spark. Quel type est htmlHelper dans la vue d'étincelles? Est-ce HTMLHELPER OT HTMLHELPER
Merci encore pour passer du temps à ce sujet. Comme il s'avère, lorsque vous téléchargez et utilisez la dernière version de Spark, il existe un assemblage compilé contre System.Web.MVC.dll v2.0.0 qui est prêt à être utilisé.
J'ai reconstruit les dernières sources d'étincelles et remplacée la référence par Spark.Web.mvc2 mais je reçois maintenant des erreurs de syntaxe étranges telles que: la compilation de la vue dynamique a échoué. Erreur CS1002 :; attendu . Quelqu'un a une idée sur la façon de résoudre ce problème? (Sparkt Dernières sources à compter de ce jour: 1.0.39966.0)
Essayez spécifiant la référence System.Web.mvc dans Web.Config au lieu du fichier global.ascx.cs afin de pouvoir spécifier la version spécifique: ceci devrait empêcher l'étincelle de travailler du tout si la mauvaise version de l'assemblage MVC est chargée de quelque part. p> Si l'assemblage MVC 1.0 est dans le GAC, vous pouvez le nettoyer et le recharger comme suit: P> (à partir de l'invite de commande Visual Studio) p> espère que cela aide, p> Jeff français p> p>
J'ai ce qui suit dans la section System.Web> Assemblages de mon web.config - est-ce suffisant?
L'ajout de la section
Merci pour la clarification Jeff. C'était très utile, mais cela n'a pas permis de résoudre directement mon problème (je devais rechercher et détruire toutes les références à l'ancienne version de l'assembly System.Web.mvc pour Real i>). Et vous avez raison, si vous suivez cette étape, il tue l'étincelle partout si la version 1.0 de System.Web.MVC.dll est référencée.
J'ai récemment converti mon projet Spark en ASP.NET MVC 2. Je ne vois pas dans ce que vous avez écrit que vous avez écrit de l'utilisation de Spark.Web.mvc à Spark.Web.mvc2. P>
juste pour être clair, spark.web.mvc2 est le projet qui doit être recompanté avec le nouvel assembly System.Web.mvc. P>
J'ai eu des problèmes avec IntelliSense jusqu'à ce que je retire toutes les références de l'assemblage et de l'espace de noms de Web.config et de les mettre dans le fichier global.Spark et avait ajouté l'attribut pageBasetype = "spark.web.mvc2.sparkview" à l'étincelle > Noeud de pages dans le web.config. P>
J'espère que tout cela aide. p>
Merci pour l'info, j'ai vérifié que la dernière version de Spark fait, en fait, inclure Spark.Web.mvc2.dll, qui références System.web.mvc.dll v 2.0.0. J'ai pu utiliser cela avec succès dans mon projet, mais j'avais toujours par erreur l'avaient négligé une autre référence à V1.0.0 ailleurs!
Le problème sous-jacent est qu'une assemblée version 1.0.0 est toujours référencée quelque part dans le projet. P>
en utilisant réflecteur pour examiner chaque dépendance des assemblages, j'ai trouvé (si vous " Reting avec le projet CodeBetter.canvas) Il existe des mvccontrib strong>. Téléchargez la dernière version
de mvccontribe ( version de téléchargement , < un href = "http://github.com/mvccontrib/mvccontrib" rel = "nofollow noreferrer"> Source de téléchargement ) qui fait référence à la
system.web.mvc.dll 2.0.0. P> li>
ninject fort>. Téléchargez la dernière version de
ninject et recompiler la solution VS
Après avoir mis à jour la référence au 2.0.0
version de system.web.mvc.dll p> li>
ol>
Maintenant, remplacez les assemblages de ces dépendances dans votre projet et mettez à jour les références du projet si nécessaire. Tout devrait être bien. P>
Merci Ian, j'ai le même problème et corrigé en suivant vos méthodes. Il y avait une assemblée qui références System.Web.MVC.dll v1.0.
J'ai essayé beaucoup de choses mentionnées ci-dessus, mais je ne pouvais tout simplement pas obtenir une DLL dépendante que mes vues utilisées (et également référencées MVC 1.0.0.0) pour utiliser le MVC 2.0.0.0, alors voici ce que vous avez fixé pour moi. ..
J'ai téléchargé le code Spark et ajouté la ligne suivante dans le fichier BatchCompiler.cs dans la méthode Compile: P>
compilerParameters.CompilerOptions = "/nowarn:1701";
Ce sont les étapes que j'ai prises pour résoudre le problème avec un nouveau projet MVC 2 et Spark 1.1:
Compilez contre MVC 2.0 Strong> - J'ai vérifié les références pour vous assurer que je voudrais être liée à MVC 2 et non MVC 1. Depuis c'était un nouveau projet, ce n'était pas un problème. p> li>
dans global.asax.cs applicatif_start p>
ajoutez le modèle tapé fort> - Assurez-vous de taper le modèle de vue d'étincelles. Dans ASPX, cela se fait avec les hérités de la déclaration de page, comme ceci: p>
<viewdata model="MyModelType" />
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master"
Inherits="System.Web.Mvc.ViewPage<MyModelType>" %>
Je pense que le vrai problème ici était que j'avais pensé à tort que la version de MVCContriberb que j'utilisais consistait à utiliser la version 2.0.0 de system.web.mvc.dll - ce n'était pas! Merde! Après avoir mis à jour cela, Spark et Ninject - Ça fonctionne!