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
,而无需指定根路径。
我想从这样的正常控制器操作重定向到剃刀页面:
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
,而无需指定根路径。