Guest User

Untitled

a guest
May 22nd, 2018
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.37 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5. using Spark;
  6. using Spark.FileSystem;
  7. using Spark.Web.Mvc;
  8. using System.Web.Mvc;
  9. using System.IO;
  10.  
  11. namespace Indev.Ciel.Web.Services
  12. {
  13.     public class SparkOnTheFly
  14.     {
  15.         public static string Render(string sTemplate, object data = null)
  16.         {
  17.             var writer = new StringWriter();
  18.             var settings = new SparkSettings()
  19.                                 .SetPageBaseType(typeof(Indev.Ciel.Web.Views.BaseView))
  20.                                 .SetDebug(true);
  21.  
  22.             var templates = new InMemoryViewFolder();
  23.             var engine = new SparkViewEngine(settings)
  24.             {
  25.                 ViewFolder = templates
  26.             };
  27.  
  28.  
  29.             templates.Add("sample.spark", @sTemplate);
  30.             var descriptor = new SparkViewDescriptor()
  31.                 .AddTemplate("sample.spark");
  32.  
  33.             var view = (Views.BaseView)engine.CreateInstance(descriptor);
  34.             try
  35.             {
  36.                 if (data != null)
  37.                 {
  38.                     view.ViewData = new ViewDataDictionary(data);
  39.                 }
  40.                 view.RenderView(writer);
  41.             }
  42.             finally
  43.             {
  44.                 engine.ReleaseInstance(view);
  45.             }
  46.             return writer.ToString();
  47.         }
  48.  
  49.     }
  50. }
Add Comment
Please, Sign In to add comment