今天我花了三个小时尝试转换MVC Contrib中包含的项目 MvcContrib.Samples.InputBuilders以使其与Spark View Engine一起使用,但到目前为止还无法这样做。
有没有人知道为什么这两个人不能相处?
我所做的更改
InputForm.spark:
<viewdata model="SampleInput" />
!{Html.InputForm()}
全球.asax.cs:
...
protected void Application_Start() {
RegisterRoutes(RouteTable.Routes);
InputBuilder.BootStrap();
ViewEngines.Engines.Clear();
ViewEngines.Engines.Add(new SparkViewFactory());
}
网络配置:
...
<spark>
<compilation debug="true"/>
<pages automaticEncoding="true">
<namespaces>
<add namespace="System"/>
<add namespace="System.Collections.Generic"/>
<add namespace="System.Linq"/>
<add namespace="System.Web.Mvc"/>
<add namespace="System.Web.Mvc.Ajax"/>
<add namespace="System.Web.Mvc.Html"/>
<add namespace="System.Web.Routing"/>
<add namespace="MvcContrib.UI.InputBuilder"/>
<add namespace="MvcContrib.UI.InputBuilder.Views"/>
<add namespace="Web.Models"/>
</namespaces>
</pages>
</spark>
(我从示例项目中复制了最后三个命名空间。)
我遇到的错误
根据我在 Global.asax.cs 中设置 Spark/InputBuilder 的顺序,我得到两个不同的异常。
如果我首先设置 InputBuilder,然后是 Spark(代码如上所示):
错误 CS1061:“System.Web.Mvc.HtmlHelper”不包含“InputForm”的定义,并且找不到接受“System.Web.Mvc.HtmlHelper”类型的第一个参数的扩展方法“InputForm”(您是否缺少using 指令或程序集引用?)
如果我首先设置 Spark,然后 InputBuilder:
找不到视图“InputForm”或其主视图。搜索了以下位置:
~/Views/Home/InputForm.aspx
~/Views/Shared/InputForm.aspx
~/Views/InputBuilders/InputForm.aspx
~/Views/Home/InputForm.ascx
~/Views/Shared/InputForm.ascx