【问题标题】:http request does not contain a definition for createresponse in .net core 2.1http请求不包含.net core 2.1中createresponse的定义
【发布时间】:2018-11-23 08:53:16
【问题描述】:

当我创建控制器并继承 ApiController 时,我使用的是 .net core 2.1。但是在我的控制器方法中返回类型 HttpResponseMessage 并给出一个错误给定的问题标题这里是我的方法

[HttpGet]
[Route("GetAll")]
[AcceptVerbs("Get", "Post")]
public HttpResponseMessage SelectCAllCustomers()
{
    try
    {
        return Request.CreateResponse<List<Customer>>(HttpStatusCode.OK, customerDetailsRepository.FindAll("SelectAllCustomers").ToList());
    }
    catch (Exception ex)
    {
        return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex);
    }
}

【问题讨论】:

    标签: c# asp.net-core .net-core


    【解决方案1】:

    Asp.Net Core 不再使用该 API。

    使用更新的语法

    [Route("api/[controller]")]
    public class CustomersController: Controller {
    
        //...
    
        [HttpGet("GetAll")]
        [AcceptVerbs("Get", "Post")]
        public IActionResult SelectCAllCustomers() {
            var model = customerDetailsRepository.FindAll("SelectAllCustomers").ToList();
            return Ok(model);            
        }
    }
    

    【讨论】:

    • 我想发送带有状态码的自定义短语,可以吗?
    • @PrashantPimpale 您很可能必须创建自己的结果或尝试自己编辑响应。
    • @PrashantPimpale 还注意到与该答案相关的关于设置 ReasonPhrase 的评论
    • 感谢您的宝贵时间,但这对我不起作用:) m 使用.net core 2.1
    • @Nkosi,对不起,如果我很笨,但我没有看到你提到的关于“设置 ReasonPhrase”的评论。在哪里可以找到这条评论?
    猜你喜欢
    • 1970-01-01
    • 2019-06-17
    • 1970-01-01
    • 1970-01-01
    • 2020-01-23
    • 1970-01-01
    • 2019-04-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多