ASP.NET API如何使用自定义消息返回发布请求状态?

时间:2017-01-11 08:14:50

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

我想将我的Http状态和消息存储在json文件中,例如BadRequest状态可能有2个不同的消息:1。name不能为null,2。name不能为空等等...         但不幸的是我无法解决它,因为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
            }
}

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:-1)

CustomResponseMessage message = new CustomResponseMessage()
{
   Message = "write a something"
};

Request.CreateResponse(HttpStatusCode.Ok,message);

//Custom Class
public class CustomResponseMessage
{
   public string Message{ get; set; }
}

你可以试试这个。