常规方法和异步方法(OnGet与OnGetAsync)之间有什么区别

时间:2018-10-19 15:40:24

标签: asp.net-core razor-pages

我开始学习Razor Pages的工作方式,教程中提到了OnGet和OnPost,还提到了我们也有异步选项:OnGetAsync和OnPostAsync。但是他们没有提到它们是如何工作的,显然它们是异步的,但是如何?他们使用AJAX吗?

HTTP GET
{
   "title": "example",
   "status": 1
   "status_detail": {
       "id": 1,
       "name": "hello"
   }
}

1 个答案:

答案 0 :(得分:2)

OnGetOnGetAsync之间没有实际差异。 OnGetAsync只是包含异步代码的方法的命名约定,该异步代码应在发出GET请求时执行。您可以省略后缀Async,但仍使方法异步:

public async Task OnGet()
{
    ...
    await ....
    ...
}

异步方法是在执行过程中释放线程的方法,以便可以将其用于其他用途,直到执行结果可用为止。您可以在此处详细了解异步方法的工作原理:https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/async/#BKMK_WhatHappensUnderstandinganAsyncMethod

同一剃刀页面中不能有Onget OnGetAsync处理程序。该框架认为它们是相同的。