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 sealed class ViewLocationExpander : IViewLocationExpander { public IEnumerable ExpandViewLocations( ViewLocationExpanderContext context, IEnumerable viewLocations) { string[] umbViewLocations = { "/Views/{0}.cshtml", "/Views/Shared/{0}.cshtml", "/Views/Partials/{0}.cshtml" }; viewLocations = umbViewLocations.Concat(viewLocations); return viewLocations; } // not a dynamic expander public void PopulateValues(ViewLocationExpanderContext context) { } } }