是否在异步ASP.NET MVC 4操作的名称中需要“Async”后缀?

时间:2013-02-01 18:29:29

标签: asp.net-mvc asynchronous asp.net-mvc-4 async-await

给出以下ASP.NET MVC 4控制器操作:

public async Task<ActionResult> FooAsync()
{
    using (var httpClient = new HttpClient())
    {
        var responseMessage = await httpClient.GetAsync("http://stackoverflow.com");
        string response = await responseMessage.Content.ReadAsStringAsync();

        return Content(response);
    }
}

我是否需要在 FooAsync 中添加“Async”后缀才能异步运行操作?

2 个答案:

答案 0 :(得分:9)

虽然这不是必需的,但我喜欢遵循约定并在我的异步方法上看到“... Async”后缀,因此我倾向于使用ActionName属性来装饰非操作的控制器操作异步名称,这样你就可以吃蛋糕了!)

[ActionName("Index")]
public async Task<ActionResult> IndexAsync()
{
    return View();
}

我觉得这很好用。

答案 1 :(得分:8)

不,这不是必需的。

  

按照惯例,您将“Async”附加到具有的方法的名称       一个异步或异步修饰符。

     

您可以忽略事件,基类或接口的约定       合同提出了不同的名称。例如,您不应重命名       常见事件处理程序,例如Button1_Click。

来源:MSDN: Asynchronous Programming with Async and Await C# -> Naming Convetions