2010-11-22 3 views
0

Ich versuche, ein MVC2 - Projekt zu MVC3 zu migrieren - ich habe die Anweisungen in den Versionshinweisen befolgt und die App wird kompiliert, aber das Projekt hängt von ein paar Helfern ab vorherige MVCFutures und Würfe:MVC2 zu MVC3 migrieren: Problem mit MVCFutures

Compiler-Fehlermeldung: CS1061: 'System.Web.Mvc.HtmlHelper' enthält keine Definition für 'SubmitImage' und keine Erweiterungsmethode 'SubmitImage', die ein erstes Argument vom Typ 'System.Web' akzeptiert .Mvc.HtmlHelper 'könnte gefunden werden (fehlt eine Verwendungs-Direktive oder eine Assembly-Referenz?)

Meine Lösung enthält einen Lib-Ordner, in dem sich befindet:

MVCFutures \ Microsoft.Web.Mvc.dll

Habe ich hier eine Upgrade-Option?

+0

Haben Sie eine Baugruppe für MVC 1,0-2,0 auf 3,0 umleiten Bindung? – marcind

+0

Ich habe überprüft, dass ich die spezifische bindingRedirect habe. – justSteve

Antwort

0

Sie haben erwähnt, dass sich Ihre MVC-Futures-Binärdatei in einem Lib-Ordner befindet. Stellen Sie sicher, dass:

  1. Ihr Projekt zu dieser Bibliothek eine assesmbly Referenz hat
  2. Die MvcFutures dll in den Papierkorb-Ordner kopiert wird
  3. Ihre web.config hat eine Anordnung Bezug auf MvcFutures

Können Sie auch klären, ob die Ausnahme, die Sie sehen, Ihre App in Visual Studio kompiliert (weil Sie MVC-Futures-Methoden in Ihren Controllern oder Datenmodellen verwenden) oder wenn Sie Ihre Anwendung im Browser aufrufen (weil Sie Futures in Ihre Ansichten).

Btw, eine aktualisierte Version von MVC Futures, die auf MVC 3 zielt, wird bald veröffentlicht werden.

Update: Der Quellcode für MVC 3 Futures ist bereits auf Codeplex verfügbar: http://aspnet.codeplex.com/releases/view/58781, so können Sie es selbst kompilieren.

+0

[geht zur ansässigen Behörde] - die Fragen führen mich zu dem Schluss, dass es am besten ist, das Projekt aus einer neuen Liste von Ansichten wiederherzustellen. auf lange Sicht am effizientesten. Danke – justSteve

1

@justSteve, First off, können Sie die MVC3 Quelle von Codeplex herunterladen, die den MvcFutures Code enthält, und bauen gerade die neuen Futures Selbstmontage.
Allerdings wäre ich bereit zu wetten, dass Ihr Problem eine missing using Aussage irgendwo ist.

Stellen Sie sicher, dass Ihre Seite eine verwendende Namespaceanweisung für Microsoft.Web.Mvc hat.

Wenn Sie versuchen, zu Razor zu migrieren (was Sie nicht gesagt haben, aber nur für den Fall), können Sie eine Namespace-Referenz in die Datei web.config in Ihrem Views-Ordner aufnehmen die using-Anweisung in jedem Ihrer Ansichten), wie folgt aus:

<system.web.webPages.razor> 
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
    <pages pageBaseType="System.Web.Mvc.WebViewPage"> 
     <namespaces> 
      <add namespace="System.Web.Mvc" /> 
      <add namespace="System.Web.Mvc.Ajax" /> 
      <add namespace="System.Web.Mvc.Html" /> 
      <add namespace="System.Web.Routing" /> 
      <add namespace="Microsoft.Web.Helpers" /> 
      ... 
     </namespaces> 
    </pages> 
    </system.web.webPages.razor>