【发布时间】:2020-09-21 12:25:02
【问题描述】:
我的Asp.Net Core项目安排如下:
MyApp
--Folder1
Folder1Controller.cs
Index.cshtml
--Folder2
Folder2Controller.cs
Index.cshtml
--Views
Shared
etc..
我已经改变了启动,让它知道这个目录结构:
services.Configure<RazorViewEngineOptions>(options =>
{
options.ViewLocationFormats.Clear();
options.ViewLocationFormats.Add($"/Folder1/{{0}}{RazorViewEngine.ViewExtension}");
options.ViewLocationFormats.Add($"/Folder2/{{0}}{RazorViewEngine.ViewExtension}");
options.ViewLocationFormats.Add($"/Views/Shared/{{0}}{RazorViewEngine.ViewExtension}");
});
Folder1Controller 的代码如下所示:
public IActionResult Index()
{
return View();
}
而且效果很好。但是,Folder2Controller 的代码看起来完全一样。问题是当它为Folder2 执行Index() 方法时,它首先查看Folder1。我可以通过这样做来解决它:
public IActionResult Index(string id)
{
return View("/Folder2/Index.cshtml");
}
我的问题是,有没有办法让 Asp.Net Core 首先查看当前目录?即使我使用相对路径("./Index"),它仍然会先转到Folder1。
【问题讨论】:
-
控制器的源位置没有映射到 uri 路径。最接近的特征可能是区域的。
标签: c# asp.net-core routes