mam stworzył świat powitania z ASP.NET MVC projektów Web API używając VS2012:Wracając 400 zamiast 404 z 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";
}
}
wystawiające żądanie dostać się do tego sterownika zwraca niektóre XML z dane o statusie 200. Jak dotąd wszystko dobrze.
Kiedy usunąć tę metodę, na przykład:
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";
}
}
I wtedy dostać 404 nie znaleziono. To, czego chcę, to 400 złych wniosków, ponieważ trzeba podać identyfikator. Jak mogę to osiągnąć?
To czego chcesz, jest złe. 404 jest tutaj prawidłowym kodem statusu. – SLaks
@SLaks: uzgodniono, ale 400 jest wymaganiem biznesowym. Postrzegają go jako przekazujący pusty identyfikator, taki sam jak w przypadku ciągu alfanum, a nie ciągu int. – sennett