Механизм представления Spark с ASP.NET MVC2

Как Вы изменяете проект ASP.NET MVC 2.0 работать с Механизмом Представления Spark?

Я попробовал как описанный здесь: http://dotnetslackers.com/articles/aspnet/installing-the-spark-view-engine-into-asp-net-mvc-2-preview-2.aspx

Но так или иначе это все еще пытается направить в .aspx файлы.

Здесь код моего global.asax:

public class MvcApplication : System.Web.HttpApplication
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            "Default",                                              // Route name
            "{controller}/{action}/{id}",                           // URL with parameters
            new { controller = "Home", action = "Index", id = "" }  // Parameter defaults
        );

    }

    protected void Application_Start()
    {
        SparkViewFactory svf = new SparkViewFactory();
        PrecompileViews(svf);

        AreaRegistration.RegisterAllAreas();

        RegisterRoutes(RouteTable.Routes);
    }

    public static void PrecompileViews(SparkViewFactory svf)
    {
        var controllerFactory = svf;
        var viewFactory = new SparkViewFactory(controllerFactory.Settings);
        var batch = new SparkBatchDescriptor();
        batch
            .For()
            .For();
        viewFactory.Precompile(batch);
    }
}

}

5
задан DaveRandom 25 February 2013 в 20:50
поделиться

5 ответов

http://www.simple-talk.com/community/blogs/asiemer/archive/2010/01/31/89132.aspx

Мне пришлось загрузить исходный код Engine Spark View ( http : //sparkviewEngene.codeplex.com/release/projectRealrese.aspx? reewic = 27600 ). После того, как я сделал это, я прошел через каждую из проектов, которые имели ссылку на версию System.web.mvc 1.0 и обновляются для ссылки на точку для System.Web.mvc 2.0. Оттуда вы можете построить решение (в Visual Studio), и вы обнаружите, что целая куча тестов начнет выйти из строя. Вы можете попытаться исправить их (добавив дополнительный параметр TextWriter, который вы найдете, теперь необходимо). Вы также увидите, что файл SparkView.cs жалуется на отсутствующий параметр. В методе Render (строка 100 исходного кода я скачал), мне пришлось обновить информирование WROPPOWViewContext, чтобы выглядеть так (добавить писатель до конца списка параметров):

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, который находится в корне с загруженного вами источника. Процесс сборки создаст ZIP-файл в папке Build / Dist. Возьмите эти новые DLL и добавьте их на свой веб-сайт. Вещи должны работать еще раз.

3
ответ дан 14 December 2019 в 13:36
поделиться

Вам нужно зарегистрировать ViewEdine:

ViewEngines.Engines.Add(new SparkViewFactory());
2
ответ дан 14 December 2019 в 13:36
поделиться

я посмотрел бы на образцы, идет с пакетом Spark-1.0.zip. Рассмотрение одного из них случайным образом имеет это в Global.asax.cs

SparkEngineStarter.RegisterViewEngine();

Hope, которому это помогает.

0
ответ дан 14 December 2019 в 13:36
поделиться

Мой global.asax.cs содержит следующее:

public class MvcApplication : System.Web.HttpApplication
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            "Default",                                              // Route name
            "{controller}/{action}/{id}",                           // URL with parameters
            new { controller = "Home", action = "Index", id = "" }  // Parameter defaults
        );

    }

    protected void Application_Start()
    {
        RegisterRoutes(RouteTable.Routes);
        ViewEngines.Engines.Add(new SparkViewFactory());

    }
}

и мой web.config содержит следующее:

<configSections>
    <section name="spark" type="Spark.Configuration.SparkSectionHandler, Spark"/>
    <sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
        <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
            <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
            <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
                <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere"/>
                <section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
                <section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
                <section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
            </sectionGroup>
        </sectionGroup>
    </sectionGroup>
</configSections>

<spark>

    <pages>
        <namespaces>
            <add namespace="System"/>
            <add namespace="System.Collections.Generic"/>
            <add namespace="System.Linq"/>
            <add namespace="System.Web.Mvc"/>
        </namespaces>
    </pages>
</spark>
0
ответ дан 14 December 2019 в 13:36
поделиться

Если вы не хотите катиться своим собственным, то есть исправление на SparkView Google Group .

Лично я жду следующего выпуска.

1
ответ дан 14 December 2019 в 13:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: