Asp.net-Mvc-4
從 ASP.NET MVC Web API 返回 400 而不是 404
我使用 VS2012 創建了 ASP.NET MVC Web API 項目的 hello world:
public class ValuesController : ApiController { // GET api/values public IEnumerable<string> Get() { return new string[] { "value1", "value2" }; } // GET api/values/5 public string Get(int id) { return "value"; } }向該控制器發出 get 請求會返回狀態為 200 的一些 XML 數據。到目前為止一切正常。
當我刪除該方法時,如下所示:
public class ValuesController : ApiController { // GET api/values //public IEnumerable<string> Get() //{ // return new string[] { "value1", "value2" }; //} // GET api/values/5 public string Get(int id) { return "value"; } }然後我得到一個 404 未找到。我想要的是 400 錯誤請求,因為必須提供 ID。我怎樣才能做到這一點?
您不必
Get()為了拋出錯誤而保留該方法。將 Get by ID 方法的簽名更改為:public string Get(int? id = null) { if (id == null) throw new HttpResponseException(HttpStatusCode.BadRequest); return "value"; }
一種方法是包含該方法,但會引發異常:
public class ValuesController : ApiController { // GET api/values public void Get() { throw new HttpResponseException(HttpStatusCode.BadRequest); } // GET api/values/5 public string Get(int id) { return "value"; } }