49 lines
1.5 KiB
C#
49 lines
1.5 KiB
C#
|
|
using System;
|
||
|
|
using System.Collections.Generic;
|
||
|
|
using System.Linq;
|
||
|
|
using Microsoft.AspNetCore.Mvc.Razor;
|
||
|
|
using Microsoft.Extensions.Options;
|
||
|
|
|
||
|
|
namespace Umbraco.Web.Website.ViewEngines
|
||
|
|
{
|
||
|
|
/// <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) { }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|