2010-04-24 7 views
1

Je suis assez nouveau dans ASP.NET MVC (environ 3 mois) et j'ai la question followin:appel entre les méthodes Ambigu ASP.NET MVC

J'ai une classe entité appelée « Usuario » dans un ClassLibrary référencé comme 'base' et, quand je crée une vue fortement typée et ajouter une html.textboxfor <> comme:

<%= Html.TextBoxFor(u => u.Login) %> 

soulève l'erreur suivante:

Error 3 The call is ambiguous between the following methods or properties: 
'Microsoft.Web.Mvc.ExpressionInputExtensions.TextBoxFor<Core.Usuario,string>(System.Web.Mvc 
.HtmlHelper<Core.Usuario>, 
System.Linq.Expressions.Expression<System.Func<Core.Usuario,string>>)' and 
'System.Web.Mvc.Html.InputExtensions.TextBoxFor<Core.Usuario,string>(System.Web.Mvc.HtmlHel 
per<Core.Usuario>,  System.Linq.Expressions.Expression<System.Func<Core.Usuario,string>>)' 
d:\Documents\Visual Studio 
2008\Projects\GuiPereiraMVC2\GuiPereiraMVC2\Views\Gestao\Index.aspx 20 25 

GuiPereiraMVC2

quelqu'un sait pourquoi?

Répondre

1

Vous avez plusieurs (au moins deux) versions des assemblages MVC mentionnés dans votre web.config. Jetez un coup d'oeil là-bas.

+0

Le Microsoft.Web.Mvc donne le 'Html.Submit', que j'utilise. ... la version System.Web.Mvc est le suivante: est-il obsolète? Que dois-je faire? – GuiPereira

+0

Vous devez vous débarrasser de Microsoft.Web.Mvc.Laissez seulement le" système "un. –

2

Bien sûr, simple :)

Vous avez probablement récemment mis à jour votre version de MVC 2. Dans votre projet web, vous avez la référence à Microsoft.Web.Mvc (l'assemblage à terme MVC).

Certaines des méthodes de ce ont été déplacés vers l'ensemble de noyau, ce qui rend la référence à Microsoft.Web.Mvc inutile. Vous pouvez facilement l'enlever maintenant :)

Btw .. Certaines méthodes ont pas été déplacés, comme les aides Html.Css/Html.Script. Mais si vous ne les utilisez pas, tout ira bien :) En outre, vous pouvez essayer de mettre à jour votre bibliothèque Microsoft.Web.Mvc si vous en avez toujours besoin. Je suppose qu'ils auraient retiré ces méthodes de la bibliothèque Futures depuis la sortie officielle!

+0

Le Microsoft .Web.Mvc donne le 'Html.Submit', que j'utilise .... le noyau ne dispose pas de ce genre d'aides dont j'ai besoin ... est-il obsolète? – GuiPereira

+0

pourrait être ... essayez d'aller sur le site Web Mvc Futures, et télécharger la dernière version à partir de là) –

1

La découverte du problème est de télécharger MVCDiagnostics soit de CodePlex ou mieux encore utiliser Nuget.

http://haacked.com/archive/2010/12/05/asp-net-mvc-diagnostics-using-nuget.aspx

Une fois que vous exécutez dans votre navigateur comme ceci: http://localhost:61839/MvcDiagnostics.aspx

Vous verrez dans couleur rouge le problème (qui pour moi ressemblait à ceci): ASP.NET MVC Futures information de l'Assemblée (Microsoft.Web.Mvc.dll)

versions Discordance ou obsolètes de ASP.NET MVC et ASP.NET MVC Futures sont chargés.

Version Loaded de ASP.NET MVC est: Version inconnue (3.0.20105.0) version Loaded de ASP.NET MVC Futures est: ASP.NET MVC 2 RTM Futures (2.0.50217.0) Un téléchargement de cette version ASP.NET MVC Futures n'est pas disponible. Les versions préliminaires de l'assembly MVC Futures ne sont plus disponibles une fois que cette version d'ASP.NET MVC est passée à RTM.

version Assemblée: ASP.NET MVC 2 Futures RTM (2.0.50217.0) Nom complet: Microsoft.Web.Mvc, Version = 2.0.0.0, Culture = neutral, PublicKeyToken = null base de code : file: // /C:/dev/20110630_OVR_MVC3/OVR_MVC3/OVR/bin/Microsoft.Web.Mvc.DLL Déploiement: bin-deploy

Questions connexes