我必须下载火花视图引擎源代码(http://sparkviewengine.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=27600)。完成此操作后,我浏览了每个引用 System.Web.Mvc 程序集的 1.0 版本并更新为指向 System.Web.Mvc 2.0 的引用的项目。从那里您可以构建解决方案(在 Visual Studio 中),您会发现一大堆测试开始失败。您可以尝试修复它们(通过添加现在需要的附加 TextWriter 参数)。您还将看到 SparkView.cs 文件抱怨缺少参数。在 Render 方法(我下载的源代码的第 100 行)中,我必须将 WrappedViewContext 的实例化更新为如下所示(将 writer 添加到参数列表的末尾):
public void Render(ViewContext viewContext, TextWriter writer)
{
var wrappedHttpContext = new HttpContextWrapper(viewContext.HttpContext, this);
var wrappedViewContext = new ViewContext(
new ControllerContext(wrappedHttpContext, viewContext.RouteData, viewContext.Controller),
viewContext.View,
viewContext.ViewData,
viewContext.TempData,
writer); // <-- add the writer to the end of the list of parameters
...
}
更新代码后,您可以运行下载源根目录中的 build.cmd 脚本。构建过程将在 build/dist 文件夹中创建一个 zip 文件。获取这些新的 dll 并将它们添加到您的网站。事情应该再次起作用。