Core自定义View查找位置
Posted fanfan-90
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Core自定义View查找位置相关的知识,希望对你有一定的参考价值。
PopulateValues():作为一种指定参数的方式存在,您的视图查找将根据每个请求而变化.由于您没有填充它,视图引擎使用先前请求中的缓存值.
public class ThemeViewLocationExpander : IViewLocationExpander { public IEnumerable<string> ExpandViewLocations(ViewLocationExpanderContext context, IEnumerable<string> viewLocations) { string theme = context.Values["theme"]; if (string.IsNullOrWhiteSpace(theme)) { theme = "default"; } string[] newLocation = { $"Views/{theme}/{{1}}/{{0}}.cshtml"}; return viewLocations.Union(newLocation); } public void PopulateValues(ViewLocationExpanderContext context) { context.Values["theme"] = context.ActionContext.HttpContext.Request.Query["theme"].ToString(); } }
//配置模版视图路径 services.Configure<RazorViewEngineOptions>(options => { options.ViewLocationExpanders.Add(new ThemeViewLocationExpander()); });
以上是关于Core自定义View查找位置的主要内容,如果未能解决你的问题,请参考以下文章