我使用VS2012创建了ASP.NET MVC Web API项目的hello世界:
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。我怎样才能做到这一点?
答案 0 :(得分:10)
您不需要保留Get()
方法只是为了抛出错误。
将Get by ID方法的签名更改为:
public string Get(int? id = null)
{
if (id == null) throw new HttpResponseException(HttpStatusCode.BadRequest);
return "value";
}
答案 1 :(得分:4)
一种方法是包含方法,但改为抛出异常:
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";
}
}