Пример #1
0
        /// <summary>
        /// Finds view and returns result
        /// </summary>
        /// <param name="controllerContext"></param>
        /// <param name="viewName"></param>
        /// <param name="masterName"></param>
        /// <param name="useCache">Ignored</param>
        /// <param name="isPartial"></param>
        /// <returns></returns>
        ViewEngineResult GetView(ControllerContext controllerContext, string viewName, string masterName, bool useCache, bool isPartial)
        {
            if (_settings.Conventions.Count == 0)
            {
                throw new MissingViewConventionsException();
            }

            List <string> searched = new List <string>();

            foreach (var convention in _settings.Conventions)
            {
                if (!convention.Match(controllerContext, viewName))
                {
                    continue;
                }

                var viewPath = convention.GetViewPath(controllerContext, viewName);

                if (!FileExists(viewPath))
                {
                    searched.Add(viewPath + " [FlexibleViewEngine]");
                    continue;
                }

                var masterPath = "";

                if (!isPartial)
                {
                    masterPath = convention.GetMasterPath(controllerContext, masterName);
                    if (!masterPath.IsNullOrEmpty(true) && !FileExists(masterPath))
                    {
                        searched.Add(viewPath + " [FlexibleViewEngine]");
                        continue;
                    }
                }

                var factory = _settings.FindViewFactoryByExtension(GetFileExtension(viewPath));
                if (factory == null)
                {
                    searched.Add(viewPath + " [FlexibleViewEngine]");
                    continue;
                }

                var settings = new ViewCreationData(controllerContext, viewPath, masterPath);

                var view = isPartial?factory.CreatePartial(settings):factory.Create(settings);
                return(new ViewEngineResult(view, this));
            }

            return(new ViewEngineResult(searched.ToArray()));
        }
Пример #2
0
 public IView CreatePartial(ViewCreationData settings)
 {
     return new RazorView(settings.Context, settings.ViewPath, null, false, _extensions);
 }
Пример #3
0
 public IView Create(ViewCreationData settings)
 {
     return new RazorView(settings.Context, settings.ViewPath,settings.MasterPath, true,_extensions);
 }
Пример #4
0
        /// <summary>
        /// Finds view and returns result
        /// </summary>
        /// <param name="controllerContext"></param>
        /// <param name="viewName"></param>
        /// <param name="masterName"></param>
        /// <param name="useCache">Ignored</param>
        /// <param name="isPartial"></param>
        /// <returns></returns>
        ViewEngineResult GetView(ControllerContext controllerContext, string viewName, string masterName, bool useCache,bool isPartial)
        {
            if (_settings.Conventions.Count == 0)
            {
                throw new MissingViewConventionsException();
            }
            
            List<string> searched = new List<string>();

            foreach (var convention in _settings.Conventions)
            {
                if (!convention.Match(controllerContext, viewName))
                {
                    continue;
                }

                var viewPath = convention.GetViewPath(controllerContext, viewName);

                if (!FileExists(viewPath))
                {
                    searched.Add(viewPath+" [FlexibleViewEngine]");
                    continue;
                }

                var masterPath = "";

                if (!isPartial)
                {
                    masterPath = convention.GetMasterPath(controllerContext, masterName);
                    if (!masterPath.IsNullOrEmpty(true) && !FileExists(masterPath))
                    {
                        searched.Add(viewPath + " [FlexibleViewEngine]");
                        continue;
                    }
                }
                
                var factory = _settings.FindViewFactoryByExtension(GetFileExtension(viewPath));
                if (factory == null)
                {
                    searched.Add(viewPath + " [FlexibleViewEngine]");
                    continue;
                }
                
                var settings = new ViewCreationData(controllerContext, viewPath, masterPath);
                
                var view = isPartial?factory.CreatePartial(settings):factory.Create(settings);
                return new ViewEngineResult(view, this);
            }

            return new ViewEngineResult(searched.ToArray());
        }
Пример #5
0
 public IView CreatePartial(ViewCreationData settings)
 {
     return(new RazorView(settings.Context, settings.ViewPath, null, false, _extensions));
 }
Пример #6
0
 public IView Create(ViewCreationData settings)
 {
     return(new RazorView(settings.Context, settings.ViewPath, settings.MasterPath, true, _extensions));
 }