ASP.net MVC核心RedirectToPage错误-指定根相对路径错误

ASP.net MVC core RedirectToPage error - specify root relative path error

我想从这样的正常控制器操作重定向到剃刀页面:

return RedirectToPage("Edit", new { id = blogId });

我已经有一个名为 "Edit" 的 razor 页面,在正常导航到它时可以正常工作:

使用 RedirectToPage 我得到以下错误:

InvalidOperationException: The relative page path 'Edit' can only be used while executing a Razor Page. Specify a root relative path with a leading '/' to generate a URL outside of a Razor Page.

知道如何指定该路径吗?

错误已经给了你答案:你应该在开头添加前导 '/' 并指定一个到你的 razor 页面的相对路径。所以你应该

return RedirectToPage("/BlogPosts/Edit", new { id = blogId });

而不是

return RedirectToPage("Edit", new { id = blogId });

请注意 "/BlogPosts/Edit""Edit" 之间的区别。 RedirectToPage 方法需要一个 path 到你的剃刀页面(根据你的图像,相对路径是 "/BlogPosts/Edit")从根文件夹开始,默认为 Pages

注意: 从 Razor Pages 2.0.0 开始,redirecting to "sibling" pages works as well。换句话说,如果您在 /BlogPosts/View 有一个页面,它可以使用 RedirectToPage("Edit", new { id = blogId }) 重定向到 /BlogPosts/Edit,而无需指定根路径。