加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc-4 – 从ASP.NET MVC Web API返回400而不是404

发布时间:2020-12-16 03:39:37 所属栏目:asp.Net 来源:网络整理
导读:我使用VS2012创建了ASP.NET MVC Web API项目的hello世界: public class ValuesController : ApiController{ // GET api/values public IEnumerablestring Get() { return new string[] { "value1","value2" }; } // GET api/values/5 public string Get(int
我使用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.我怎样才能做到这一点?

解决方法

您不需要保留Get()方法只是为了抛出错误.
将Get by ID方法的签名更改为:

public string Get(int? id = null)
{
    if (id == null) throw new HttpResponseException(HttpStatusCode.BadRequest);
    return "value";
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读