IHttpActionResult
public class CustomResponseResult<T> : IHttpActionResult {
public CustomResponseResult(HttpStatusCode statusCode, T content, HttpRequestMessage request) {
Content = content;
Request = request;
StatusCode = statusCode;
}
public T Content { get; private set; }
public HttpRequestMessage Request { get; private set; }
public HttpStatusCode StatusCode { get; private set; }
public Task<HttpResponseMessage> ExecuteAsync(CancellationToken cancellationToken) {
return Task.FromResult(Execute());
}
private HttpResponseMessage Execute() {
var response = Request.CreateResponse(StatusCode, Content);
response.RequestMessage = Request;
response.ReasonPhrase = StatusCode.ToString();
return response;
}
}
カスタムを作成し、使いやすさを維持するために、通話が
return this.BadRequest(someJSONErrorObject);
または
を望ん許可されている拡張メソッドに
public static class ApiControllerExtensions {
public static IHttpActionResult BadRequest<T>(this ApiController controller, T content) {
return controller.CustomResponse(HttpStatusCode.BadRequest, content);
}
public static IHttpActionResult NotFound<T>(this ApiController controller, T content) {
return controller.CustomResponse(HttpStatusCode.NotFound, content);
}
public static IHttpActionResult CustomResponse<T>(this ApiController controller, HttpStatusCode statusCode, T content) {
var request = controller.Request;
var result = new CustomResponseResult<T>(statusCode, content, request);
return result;
}
}
を作成
return this.NotFound(someJSONErrorObject);
を通じて実行されませんが、 'BadRequestは、()'コンストラクタは、文字列または状態をとります。文字列にあるものはすべて、 'Message'プロパティに割り当てられます。 – leejt489
私のコードでこれを回避しました。うん、私はそれ 'this.BadRequest()'パート...その周りにどのような方法で苦しんでいた – Nkosi
は見えないしましょうか? – Nkosi