Nustache视图引擎ArrayTypeMismatchException

时间:2012-01-30 15:41:17

标签: c# .net asp.net-mvc-3 mustache viewengine

尝试使用Nustache来共享客户端和服务器胡子模板,但Nustache只是不能很好地使用我的应用程序。我在源代码中直接使用了他们的MVC应用程序示例中的代码,但每次尝试设置或添加视图引擎时都会出错。这是一个代码片段(来自一个动作方法,我也尝试在global.asax中全局添加视图引擎并出现同样的错误):

ViewResult viewResult = View(new { test = "Jawesome" });

viewResult.ViewEngineCollection = new ViewEngineCollection
                                  {
                                      new NustacheViewEngine()
                                  };

这是错误:

[ArrayTypeMismatchException: Attempted to access an element as a type incompatible with the array.]
   System.Collections.Generic.List`1.Insert(Int32 index, T item) +62
   MyController.Index() in C:\src\projects\myproject\myproject.Web\Controllers\MyController.cs:83
   lambda_method(Closure , ControllerBase , Object[] ) +79
   System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) +264
   ...

1 个答案:

答案 0 :(得分:1)

我正在使用Nustache的MVC4,我遇到了完全相同的问题。我花了一段时间来弄清楚这个问题,我在网上找不到任何解决方案,所以我想我会发布我的解决方案,希望能帮助别人。

问题是Nustache.Mvc3项目是从MVC3引用System.Web和System.Web.Mvc所以我不得不更新它们以使用MVC4。要做到这一点: 1.在Visual Studio中,右键单击Nustache.Mvc3项目,然后选择“属性” 2.在Applicaiton选项卡中,将Target Framework更改为.Net Framework 4.5 3.返回解决方案资源管理器,删除Nustache.Mv3中引用下的System.Web和System.Web.Mvc 4.右键单击“参考”并为System.Web和System.Web.Mvc

添加4.0版