【问题标题】:ASP.net MVC core RedirectToPage error - specify root relative path errorASP.net MVC 核心 RedirectToPage 错误 - 指定根相对路径错误
【发布时间】:2018-06-27 09:10:50
【问题描述】:

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

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

我已经有一个名为“编辑”的剃须刀页面,在正常导航到它时可以正常工作:

RedirectToPage 出现以下错误:

InvalidOperationException:相对页面路径“编辑”只能是 在执行 Razor 页面时使用。使用 a 指定根相对路径 前导“/”以在 Razor 页面之外生成 URL。

知道如何指定该路径吗?

【问题讨论】:

    标签: c# asp.net-core-mvc razor-pages


    【解决方案1】:

    错误已经给了你答案:你应该在开头添加前导“/”并指定你的剃须刀页面的相对路径。所以你应该有

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

    代替

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

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

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

    【讨论】:

    • 太好了,"/BlogPosts/Edit" 做到了,我希望它像 RedirectToAction 一样工作,您只需指明操作/页面名称
    猜你喜欢
    • 2015-08-19
    • 1970-01-01
    • 2021-12-02
    • 2018-06-20
    • 2018-03-07
    • 1970-01-01
    • 1970-01-01
    • 2018-02-06
    • 2016-03-16
    相关资源
    最近更新 更多