Example #1
0
        //private IRazorEngineService _engine;
        //private RazorFileTemplate _razorFileTemplate;
        //public CustomTemplateBase(IRazorEngineService engine, RazorFileTemplate razorFileTemplate) : base()
        //{
        //    _engine = engine;
        //    _razorFileTemplate = razorFileTemplate;
        //}

        public string Partial(string partialName, object obj)
        {
            var path = partialName;

            if (this.ViewBag.InputFolder != null)
            {
                path = FileUtils.GetPartialPath(this.ViewBag.InputFolder, path);
            }
            if (File.Exists(path))
            {
                try
                {
                    //compile partial template
                    var fileContent = FileUtils.ReadFileContent(path);
                    var templateKey = Razor.GetKey(partialName);
                    if (!Razor.IsTemplateCached(templateKey, null))
                    {
                        var templateSource = new LoadedTemplateSource(fileContent);
                        Razor.AddTemplate(templateKey, templateSource);
                        Razor.Compile(templateKey, obj.GetType());
                    }
                    Include(partialName, obj, null).WriteTo(this.CurrentWriter);
                    return(string.Empty);
                }
                catch (TemplateCompilationException tex)
                {
                    return(string.Format("Partial Render Error{0}\r\n{1}", path, MRazorUtil.GetError(tex)));
                }
                catch (Exception ex)
                {
                    return(string.Format("Partial Render Error{0}\r\n{1}", path, ex.Message));
                }
            }
            else
            {
                return("Partial file Not Found " + path);
            }
        }