Asp.net-Mvc
ASP.NET Core 2:如何使用區域 RedirectToPage?
RedirectToPage("Companies")將重定向到/Pages/Companies.cshtml(從 ASP.NET MVC 控制器)但是如果想要重定向到這個頁面
/Areas/MyArea/Pages/Companies.cshtml呢?所有這些和許多其他都不起作用:
RedirectToPage("/MyArea/Companies.cshtml") RedirectToPage("MyArea/Companies.cshtml") RedirectToPage("./MyArea/Companies.cshtml") RedirectToPage("/MyArea/Companies") RedirectToPage("MyArea/Companies") RedirectToPage("./MyArea/Companies")有時我會收到“找不到頁面”錯誤。有時會得到“指定帶有前導 ‘/’ 的根相對路徑以在 Razor 頁面之外生成 URL”。沒有
Pages文件夾。我知道這一切都可以再次改變所有規則。PS Razor 頁面配置為普通 .SetCompatibilityVersion(CompatibilityVersion.Version_2_1); 沒有添加特定的路由。
使用RedirectToPage 的重載,它接受一個表示 RouteValues 的對象:
return RedirectToPage("/Companies", new { area = "MyArea" });請注意,
'/'如果您RedirectToPage在控制器(或 Razor 頁面之外的任何地方)中使用,則需要。否則它不是必需的(但仍然可以工作)。
這對我有用:
return RedirectToPage("/Companies", new { area = "MyArea" });
.SetCompatibilityVersion(CompatibilityVersion.Version_2_1);在沒有配置特定路由的普通情況下工作。我覺得這將是一個受歡迎的問題……感謝 Mike Bring,他為我指明了一條道路。
PS 如果您有 Pages 文件夾 - 所有規則將再次更改。這就是“Razor Pages”如何試圖擺脫“MVC 魔法”的方式