using System; using System.Collections.Generic; using System.Linq; using Microsoft.AspNetCore.Mvc.Razor; using Microsoft.Extensions.Options; namespace Umbraco.Cms.Web.Website.ViewEngines { /// /// Configure view engine locations for front-end rendering /// public class RenderRazorViewEngineOptionsSetup : IConfigureOptions { /// public void Configure(RazorViewEngineOptions options) { if (options == null) { throw new ArgumentNullException(nameof(options)); } options.ViewLocationExpanders.Add(new ViewLocationExpander()); } /// /// Expands the default view locations /// private class ViewLocationExpander : IViewLocationExpander { public IEnumerable ExpandViewLocations(ViewLocationExpanderContext context, IEnumerable viewLocations) { string[] umbViewLocations = new string[] { "/Views/Partials/{0}.cshtml", "/Views/MacroPartials/{0}.cshtml", "/Views/{0}.cshtml" }; viewLocations = umbViewLocations.Concat(viewLocations); return viewLocations; } // not a dynamic expander public void PopulateValues(ViewLocationExpanderContext context) { } } } }