【问题标题】:ASP.NET API How to return Post request status with custom message?ASP.NET API 如何使用自定义消息返回 Post 请求状态?
【发布时间】:2017-01-11 08:14:49
【问题描述】:

我想将我的 Http 状态和它们的消息存储在 json 文件中,例如 BadRequest 状态可能有 2 条不同的消息:1. 名称不能为空,2. 名称不能为空等等... 但不幸的是我无法解决它,因为 IHttpActionResult 只需要返回状态方法,如何在不同的情况下添加自定义消息? 我遇到错误

无法将类型“System.Net.Http.StringContent”隐式转换为 'System.Web.Http.IHttpActionResult'。存在显式转换 (你错过了演员吗?) 异常类:

 public class ExceptionResponse
    {
        public HttpStatusCode ReturnCode { get; set; }
        public string Message { get; set; }
    }

发布方式:

[HttpPost]
    public IHttpActionResult Post([FromBody] MyRequest myCaseRequest)
    {
        var myObj = new MyObjCase();
        ExceptionResponse data = new ExceptionResponse()
        {
            Message = "Parameter cannont be null",
            ReturnCode = HttpStatusCode.BadRequest
        };

                string json = JsonConvert.SerializeObject(data, Formatting.Indented);
                var jsonCont = new StringContent(json, Encoding.UTF8, "application/json");

                if (myObj.Name == null || myObj.Name == "")
                    // return BadRequest(); // Before  
                    return jsonCont; // expecting for result
            }
}

【问题讨论】:

    标签: c# asp.net api http-post http-status-codes


    【解决方案1】:

    您可以尝试使用 HttpResponseMessage。示例here

    【讨论】:

      【解决方案2】:
      CustomResponseMessage message = new CustomResponseMessage()
      {
         Message = "write a something"
      };
      
      Request.CreateResponse(HttpStatusCode.Ok,message);
      
      //Custom Class
      public class CustomResponseMessage
      {
         public string Message{ get; set; }
      }
      

      你可以试试这个。

      【讨论】:

      • 返回类型必须是HttpResponseMessage。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-19
      • 2021-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多