Сегодня я потратил добрых три часа, пытаясь преобразовать проект MvcContrib.Samples.InputBuilders, включенный в MVC Contrib чтобы заставить его работать с Spark View Engine, но пока не удалось этого сделать.
Кто-нибудь знает, почему эти двое просто не ладят?
Внесенные мной изменения
InputForm.spark:
<viewdata model="SampleInput" />
!{Html.InputForm()}
Global.asax.cs:
...
protected void Application_Start() {
RegisterRoutes(RouteTable.Routes);
InputBuilder.BootStrap();
ViewEngines.Engines.Clear();
ViewEngines.Engines.Add(new SparkViewFactory());
}
Web.config:
...
<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>
(Я скопировал последние три пространства имен из примера проекта.)
Я получаю ошибки
В зависимости от порядка, в котором я устанавливаю Spark / InputBuilder в Global.asax.cs, я получаю два разных исключения.
Если я сначала настрою InputBuilder, затем Spark (код показан выше):
ошибка CS1061: «System.Web.Mvc.HtmlHelper» не содержит определения для «InputForm», и не может быть найден метод расширения «InputForm», принимающий первый аргумент типа «System.Web.Mvc.HtmlHelper» (отсутствуют ли директиву using или ссылку на сборку?)
Если я сначала установлю Spark, то InputBuilder:
Не удалось найти представление InputForm или его мастер. Были обысканы следующие места:
~ / Просмотры / Главная / InputForm.aspx
~ / Просмотры / Shared / InputForm.aspx
~ / Просмотры / InputBuilders / InputForm.aspx
~ / Просмотры / Главная / InputForm.ascx
~ / Просмотры / Shared / InputForm.ascx