Fre*_*red 4 asp.net-core razor-pages
我在 OnGet 方法的开头有代码,基本上说只是检查查询字符串参数是否存在,如果不存在,则在 Response 对象上设置重定向并返回。
我发现它仍然尝试渲染页面,最终抛出 NullReferenceException。
显然,我可以通过确保 viewbag 中的值不为空来解决此问题,但我觉得更好的解决方案是不渲染剃刀页面。我已经进行了一些谷歌搜索,但没有找到任何相关信息。
有没有办法告诉 asp.net core 3.x 不要渲染 Razor 页面?
迈克·布林德的评论为我提供了找到解决方案所需的信息。您需要调整 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();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
716 次 |
| 最近记录: |