ho creato il mondo ciao di progetti web API ASP.NET MVC utilizzando VS2012:Tornando 400 piuttosto che 404 da ASP.NET MVC Web API
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";
}
}
emissione una richiesta GET a tale controller ritorna qualche XML i dati con stato 200. Tutto bene finora.
Quando rimuovo questo metodo, in questo modo:
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";
}
}
Allora ottengo un 404 non trovato. Quello che voglio è una 400 cattiva richiesta, perché deve essere fornito un ID. Come posso raggiungere questo obiettivo?
Quello che vuoi è sbagliato. 404 è il codice di stato corretto qui. – SLaks
@SLaks: concordato, ma 400 è il requisito aziendale. Lo vedono passare un ID vuoto, come passare una stringa alfanum piuttosto che una stringa int. – sennett