2021-01-04 15:43:30 +11:00
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using Microsoft.AspNetCore.Mvc.Razor;
|
|
|
|
|
using Microsoft.Extensions.Options;
|
|
|
|
|
|
2021-02-18 11:06:02 +01:00
|
|
|
namespace Umbraco.Cms.Web.Website.ViewEngines
|
2021-01-04 15:43:30 +11:00
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Configure view engine locations for front-end rendering
|
|
|
|
|
/// </summary>
|
|
|
|
|
public class RenderRazorViewEngineOptionsSetup : IConfigureOptions<RazorViewEngineOptions>
|
|
|
|
|
{
|
|
|
|
|
/// <inheritdoc/>
|
|
|
|
|
public void Configure(RazorViewEngineOptions options)
|
|
|
|
|
{
|
|
|
|
|
if (options == null)
|
|
|
|
|
{
|
|
|
|
|
throw new ArgumentNullException(nameof(options));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
options.ViewLocationExpanders.Add(new ViewLocationExpander());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Expands the default view locations
|
|
|
|
|
/// </summary>
|
|
|
|
|
private class ViewLocationExpander : IViewLocationExpander
|
|
|
|
|
{
|
|
|
|
|
public IEnumerable<string> ExpandViewLocations(ViewLocationExpanderContext context, IEnumerable<string> 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) { }
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|