ASP.Net Core更改默认视图文件夹位置



我正在尝试更改默认视图的位置,以便以下操作正常:

[Route("")]
public class HomeController : Controller
{
public IActionResult Index()
{
return View();
}
}

我想要视图的位置是/MVC/views/ControllerName/Index(MethodName(

我尝试将以下内容添加到Startup=>ConfigureServices(IServiceCollection(

services.Configure<RazorViewEngineOptions>(o =>
{
o.AreaViewLocationFormats.Clear();
o.AreaViewLocationFormats.Add("/MVC/Views/{1}/{0}" + RazorViewEngine.ViewExtension);
});

以下工作,但我更喜欢它默认为正确的路径

return View("/MVC/Views/Home/Index.cshtml");

如本答案所述:

来自。Net Core v2.0以上版本,您可以在RazorViewEngineOptions中使用ViewLocationFormatsAreaViewLocationFormats来修改视图查找。

您要查找的选项是ViewLocationFormats,因为您没有使用"查看区域"。

您的解决方案将沿着以下几条线:

services.Configure<RazorViewEngineOptions>(o =>
{
o.ViewLocationFormats.Clear();
o.ViewLocationFormats.Add("/MVC/Views/{1}/{0}" + RazorViewEngine.ViewExtension);
o.ViewLocationFormats.Add("/MVC/Views/Shared/{0}" + RazorViewEngine.ViewExtension);
});

只有在共享布局和奇偶校验位于该位置而不在标准文件夹中时,才需要最后一行。

接受的答案是正确的,如果有人想更改Areas的默认视图文件夹位置(比如我(,这里有解决方案:

services.Configure<RazorViewEngineOptions>(options =>
{
options.AreaViewLocationFormats.Clear();
options.AreaViewLocationFormats
.Add($"/Path/To/Views/{{1}}/{{0}}{RazorViewEngine.ViewExtension}");
options.AreaViewLocationFormats
.Add($"/Path/To/Views/Shared/{{0}}{RazorViewEngine.ViewExtension}");
});

最新更新