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
C# 哪种http返回结果类型最好,并且可以在一行代码语句中返回HttpResponseMessage_C#_Asp.net Core - Fatal编程技术网

C# 哪种http返回结果类型最好,并且可以在一行代码语句中返回HttpResponseMessage

C# 哪种http返回结果类型最好,并且可以在一行代码语句中返回HttpResponseMessage,c#,asp.net-core,C#,Asp.net Core,我正在使用asp.net核心web api,我需要执行一个任务OneTask,成功执行OneTask后,它应返回OK staus,否则返回错误响应。我想要HttpResponseMessage并且可以返回返回Ok(awit OneTask()) [HttpPost] 公共异步任务Post() { 等待一个任务; 返回Ok(新的HttpResponseMessage(HttpStatusCode.Ok)); } 公共异步任务OneTask() { 等待某项任务 } IActionResult界面是

我正在使用asp.net核心web api,我需要执行一个任务
OneTask
,成功执行
OneTask
后,它应返回OK staus,否则返回错误响应。我想要
HttpResponseMessage
并且可以返回
返回Ok(awit OneTask())

[HttpPost]
公共异步任务Post()
{
等待一个任务;
返回Ok(新的HttpResponseMessage(HttpStatusCode.Ok));
}
公共异步任务OneTask()
{
等待某项任务
}
IActionResult
界面是响应客户机的最佳实践

因此,如下更改代码:

[HttpPost]
[Route("PostWithValue")]
public async Task<IActionResult> PostWithValue()
{
    var result = await OneTaskWithReturnValue();

    return Ok(result);
}
public async Task<bool> OneTaskWithReturnValue()
{
    await Task.Delay(100);

    return true;
}
[HttpPost]
[路线(“PostWithValue”)]
公共异步任务PostWithValue()
{
var结果=等待OneAskWithReturnValue();
返回Ok(结果);
}
公共异步任务OneTaskWithReturnValue()
{
等待任务。延迟(100);
返回true;
}
另外,请注意
异步无效(无任务)
这是一个坏主意,因为您在处理异常方面有问题:

简言之:

[HttpPost]
[Route("PostWithValue")]
public async Task<IActionResult> PostWithValue()
{
    var result = await OneTaskWithReturnValue();

    if (!result)
    {
        return BadRequest("Message for Error");
    }

    return Ok("Message for OK Status");
}
public async Task<bool> OneTaskWithReturnValue()
{
    await Task.Delay(100);

    // Do you task

    return true;
}
[HttpPost]
[路线(“PostWithValue”)]
公共异步任务PostWithValue()
{
var结果=等待OneAskWithReturnValue();
如果(!结果)
{
返回错误请求(“错误消息”);
}
返回Ok(“Ok状态信息”);
}
公共异步任务OneTaskWithReturnValue()
{
等待任务。延迟(100);
//你有任务吗
返回true;
}

如何检查
OneTask
执行是否成功?我也不确定这一点。OneTask如何决定执行是否成功?
[HttpPost]
[Route("PostWithValue")]
public async Task<IActionResult> PostWithValue()
{
    var result = await OneTaskWithReturnValue();

    if (!result)
    {
        return BadRequest("Message for Error");
    }

    return Ok("Message for OK Status");
}
public async Task<bool> OneTaskWithReturnValue()
{
    await Task.Delay(100);

    // Do you task

    return true;
}