gpt4 book ai didi

razor - 为什么 razor 页面返回 Task 而不是 IActionResult?

转载 作者:行者123 更新时间:2023-12-05 06:39:29 26 4
gpt4 key购买 nike

Razor Pages 在 Asp.Net Core 2.0 中引入,作为创建以页面为中心的 Web 应用程序的一种方式,并且在许多方面比典型的 Controller 、 View 、模型方法更容易编写。我一直在研究 https://learn.microsoft.com/en-us/aspnet/core/razor-pages/ 的文档我感到好奇的一件事是代码隐藏文件中的操作方法利用了 async await模式,因此返回 Task<IActionResult>而不是返回 IActionResult标准 Asp.Net Core 操作方法的方式。我觉得很奇怪,因为这种方法比标准 Asp.Net Core 操作方法使用的方法更复杂,而且似乎与 Razor Pages 的设计简单性背道而驰。

来自该来源的修改示例:

  public class ContactModel : PageModel {

public async Task<IActionResult> OnPostAsync() {
//Other code omitted

return Page();
}
}

为了比较,在常规的 Asp.Net Core Controller 中,相同的代码如下所示:

 public class Contact: Controller {

[HttpPost]
public IActionResult OnPost() {
//Other code omitted

return View();
}
}

为什么 Razor Pages 操作方法使用 async await模式返回 Task<IActionResult>而不是使用常规 Asp.Net 核心操作方法使用的更简单的方法,只需返回一个 IActionResult。 ?为什么做出这样的设计选择?

最佳答案

我相信您引用的示例是异步的,但这并不能阻止您通过使用与第二个代码块中相同的签名来创建同步操作(不确定 HttpPostAttribute 虽然它看起来像它的命名约定)。

public IActionResult OnPost() {  /* code here */ }

关于razor - 为什么 razor 页面返回 Task<IActionResult> 而不是 IActionResult?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44371153/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com