Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core 重定向时如何避免呈现Asp.net Core razor页面?_Asp.net Core_Razor Pages - Fatal编程技术网

Asp.net core 重定向时如何避免呈现Asp.net Core razor页面?

Asp.net core 重定向时如何避免呈现Asp.net Core razor页面?,asp.net-core,razor-pages,Asp.net Core,Razor Pages,在我的OnGet方法的开头有一些代码,基本上是说只检查查询字符串参数是否存在,如果不存在,则在响应对象上设置重定向并返回 我发现它仍然试图呈现页面,结果抛出一个NullReferenceException 显然,我可以通过确保viewbag中的值不为null来解决这个问题,但我觉得更好的解决方案是不渲染razor页面。我在谷歌上搜索了一下,没有找到任何相关信息 有没有办法告诉asp.net core 3.x不要呈现razor页面?Mike Brind的评论为我提供了找到解决方案所需的信息。您需要

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

我发现它仍然试图呈现页面,结果抛出一个NullReferenceException

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


有没有办法告诉asp.net core 3.x不要呈现razor页面?

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

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

    // do stuff
    return new PageResult();
}

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