我正在使用ASP。. NET Core 5 Razor Pages。常用模板放在Pages/Shared
中,但我需要将其重命名为Pages/Foo
。
如何指示运行时查找Pages/Foo
中的文件?
我认为这是可能的Startup.ConfigureServices()
:
services.AddRazorPages(options => {
options.Conventions.??? // what goes here?
});
用于定位Razor Pages视图的路径在PageViewLocationFormats
中定义,这是RazorViewEngineOptions
的属性。您可以操作此集合以自定义这些路径。
下面是一个例子:
services.AddRazorPages()
.AddRazorOptions(o =>
{
var indexOfPagesShared = o.PageViewLocationFormats.IndexOf("/Pages/Shared/{0}.cshtml");
o.PageViewLocationFormats.RemoveAt(indexOfPagesShared);
o.PageViewLocationFormats.Insert(indexOfPagesShared, "/Pages/Foo/{0}.cshtml");
});
有很多不同的方法来修改列表,但是这个例子展示了如何用/Pages/Foo
替换现有的/Pages/Shared
路径。它对根目录(/Pages
)和文件扩展名做了假设,但这些都是典型的。
注意,如果你使用的是区域,也有一个AreaPageViewLocationFormats
属性。