我正在尝试更改默认视图的位置,以便以下操作正常:
[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中使用ViewLocationFormats
和AreaViewLocationFormats
来修改视图查找。
您要查找的选项是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}");
});