[英]How return View with model in the ExceptionFilter in Asp.Net Core MVC
[英]How to get Asp.Net Core to return the correct view
我的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
。
您可以將名稱為 controller 的文件夾添加到您的文件夾 1、文件夾 2,以便路由可以識別要查找的視圖。
首先,像這樣更改文件夾結構:
MyApp
--Folder1
Folder1Controller.cs
--Folder1
Index.cshtml
--Folder2
Folder2Controller.cs
--Folder2
Index.cshtml
--Views
Shared
etc..
啟動:
services.Configure<RazorViewEngineOptions>(options =>
{
options.ViewLocationFormats.Clear();
options.ViewLocationFormats.Add("/Folder1/{1}/{0}" + RazorViewEngine.ViewExtension);
options.ViewLocationFormats.Add("/Folder2/{1}/{0}" + RazorViewEngine.ViewExtension);
options.ViewLocationFormats.Add($"/Views/Shared/{{0}}{RazorViewEngine.ViewExtension}");
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.