【问题标题】:How to avoid rendering Asp.net Core razor pages when redirecting?重定向时如何避免呈现 Asp.net Core 剃须刀页面?
【发布时间】:2020-05-18 21:11:33
【问题描述】:

我在 OnGet 方法的开头有代码,它基本上说只是检查查询字符串参数是否存在,如果不存在,则在 Response 对象上设置重定向并返回。

我发现它仍在尝试呈现页面,最终抛出 NullReferenceException。

我显然可以通过确保 viewbag 中的值不为 null 来解决这个问题,但我觉得更好的解决方案是不渲染剃须刀页面。我做了一些谷歌搜索,但没有找到任何相关信息。

有没有办法告诉 asp.net core 3.x 不要渲染剃须刀页面?

【问题讨论】:

  • 您需要显示您的OnGet 方法中的代码和NullReferenceException 的来源,以便人们了解发生了什么。如果执行RedirectToPageResult,当前页面将不会呈现。
  • 我确实在我的问题中声明我在响应对象上使用了重定向方法。

标签: asp.net-core razor-pages


【解决方案1】:

Mike Brind 的评论为我提供了找到解决方案所需的信息。您需要调整 OnGet/Post 方法以返回 IActionResult 并返回 RedirectToPageResult 对象。

public IActionResult OnGet() {
    var queryParam = Request.Query["queryParam"].ToString();
    if(string.IsNullOrWhiteSpace(queryParam))
        return new RedirectToPageResult("OtherPageName");

    // do stuff
    return new PageResult();
}

【讨论】:

    猜你喜欢
    • 2021-12-20
    • 2019-01-11
    • 2020-02-20
    • 1970-01-01
    • 2018-12-19
    • 2021-12-20
    • 2022-11-28
    • 2018-08-28
    • 2021-10-27
    相关资源
    最近更新 更多