C# RESTful服务返回带有消息的HTTP响应
如何利用aspnet core上REST服务中的HTTP状态代码?最终,如果出现问题,甚至会包含一条消息 例如:C# RESTful服务返回带有消息的HTTP响应,c#,asp.net-mvc,rest,asp.net-web-api,asp.net-core,C#,Asp.net Mvc,Rest,Asp.net Web Api,Asp.net Core,如何利用aspnet core上REST服务中的HTTP状态代码?最终,如果出现问题,甚至会包含一条消息 例如: [HttpGet] public async Task<MyModel> Get(int id) { if (id == 0) return new HttpResponseMessage(HttpStatusCode.BadRequest); ... } [HttpGet] 公共异
[HttpGet]
public async Task<MyModel> Get(int id)
{
if (id == 0)
return new HttpResponseMessage(HttpStatusCode.BadRequest);
...
}
[HttpGet]
公共异步任务Get(int-id)
{
如果(id==0)
返回新的HttpResponseMessage(HttpStatusCode.BadRequest);
...
}
此代码显然返回错误无法将类型“System.Net.Http.HttpResponseMessage”隐式转换为“MyModel”
一种解决方案是总是向
MyModel
返回一个HTTP200和一些额外的属性,如Status
、Success
或Message
,但这会破坏RESTful的目的。返回任务而不是任务
:
[HttpGet]
公共异步任务获取(字符串id)
{
如果(id==0)返回BadRequest();
// ...
返回Ok(型号);
}
有许多控制器帮助器方法(请参阅),例如BadRequest()
,Ok()
,NotFound()
,Created()
,等等。这些映射到您期望的HTTP响应代码。返回任务
,而不是返回任务
:
[HttpGet]
公共异步任务获取(字符串id)
{
如果(id==0)返回BadRequest();
// ...
返回Ok(型号);
}
有许多控制器帮助器方法(请参阅),例如BadRequest()
,Ok()
,NotFound()
,Created()
,等等。这些映射到您期望的HTTP响应代码。您可以使用Ok
或BadRequest
方法。您可以使用任务
作为返回类型
[HttpGet]
public async Task<ObjectResult> Get(int id)
{
if(id==0)
return BadRequest(new {Messagae = "Something is not correctT"});
var result = await GetSomeMyModelObject();
return Ok(result);
}
您可以使用Ok
或BadRequest
方法。您可以使用任务
作为返回类型
[HttpGet]
public async Task<ObjectResult> Get(int id)
{
if(id==0)
return BadRequest(new {Messagae = "Something is not correctT"});
var result = await GetSomeMyModelObject();
return Ok(result);
}
相反,这对我起了作用
return BadRequest("Something is not correct");
相反,这对我起了作用
return BadRequest("Something is not correct");
@EdwinvanVliet这就是Ok(model)
为您所做的:@EdwinvanVliet这就是Ok(model)
为您所做的: