Verwenden der Funktionen von asp.net mvc 2 mit der Spark-View-Engine

Ich arbeite mit einem ASP.NET MVC-Projekt, das ursprünglich von der gestartet wurdeCodeBetter.Canvas Projekt - und ich versuche, zu ASP.NET MVC 2 zu wechseln. Ich habe mein Projekt mit erfolgreich aktualisiertEilons Upgrade-Tool, zu VS2010 verschoben (obwohl noch nicht zu .NET 4).

Das Problem, das ich derzeit habe, tritt nur bei Verwendung der Spark-View-Engine auf. Hier ist der relevante Code in meinem View.spark (stark typisiert):

${Html.EditorFor(e => e)}

Das gleiche Stück Codefunktioniert gut Wenn ich eine ASPX-Ansicht verwende:

<%= Html.EditorFor(e => e) %>

Das Wichtigste dabei ist, dass "EditorFor" neu in ASP.NET MVC 2 ist. In meinem Projekt kann ich diesen Helfer in einer ASPX-Ansicht, aber nicht in einer Spark-Ansicht verwenden.

ich habe es versuchtUpgrade von Spark auf MVC 2 (sowie MvcContrib und Ninject), vielleicht war es einer von denen, die ausgeflippt sind - aber bisher kein Glück - ich sehe immer noch dasselbe Verhalten.

Hier ist die vollständige Fehlermeldung, die in der BatchCompiler-Klasse von Spark ausgegeben wird.

Dynamische Ansichtskompilierung fehlgeschlagen. (0,0): Warnung CS1701: Unter Annahme der Assemblyreferenz "System.Web.Mvc, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35" stimmt mit "System.Web.Mvc, Version = 2.0.0.0, Culture = neutral" überein , PublicKeyToken = 31bf3856ad364e35 ', müssen Sie möglicherweise die Laufzeitrichtlinie c: \ inetpub \ wwwroot [myproject] \ CodeBetter.Canvas.Web \ Views [MyEntity] \ View.spark (9,16): Fehler CS1061:' System.Web .Mvc.HtmlHelper 'enthält keine Definition für' EditorFor 'und es wurde keine Erweiterungsmethode' EditorFor 'gefunden, die ein erstes Argument vom Typ' System.Web.Mvc.HtmlHelper 'akzeptiert (fehlt eine using-Direktive oder eine Assembly-Referenz?) ?)

Hier ist der Spark-bezogene Code in meinem Global.asax:

var settings = new SparkSettings()
.AddNamespace("System")
.AddNamespace("System.Collections.Generic")
.AddNamespace("System.Web.Mvc")
.AddNamespace("System.Web.Mvc.Html")
.AddNamespace("MvcContrib.FluentHtml")
.AddNamespace("CodeBetter.Canvas")
.AddNamespace("CodeBetter.Canvas.Web")
.SetPageBaseType("ApplicationViewPage")
.SetAutomaticEncoding(true);

#if DEBUG
    settings.SetDebug(true);
#endif

var viewFactory = new SparkViewFactory(settings);
ViewEngines.Engines.Add(viewFactory);

Außerdem verweise ich in meiner Spark-Ansicht wie erwähnt auf System.Web.Mvc.Htmlin einer anderen SO Antwort.

<use namespace="System.Web.Mvc.Html" />

Antworten auf die Frage(6)

Ihre Antwort auf die Frage