Skip to main content
 首页 » 编程设计

使用 List> 的 C# Web API 响应处理

2024年01月21日27bjzhanghao

我有一个 POST 方法,它将返回用户的项目列表,并且由于我是 c# web api 的新手,所以如果 Id 为 null、空或无效,我很难设置正确的条件和响应。我尝试过类似的响应,但它不起作用,主要是因为这些示例使用的是 iHttpActionResult 而不是 List<>

这是我 Controller 中的代码,我不确定在我提供的评论中放置什么:

[HttpPost] 
public List<ValueStory> UserValueStories ([FromBody] ValueStory valuestory) 
//public void UserValueStories([FromBody] ValueStory Id) 
{ 
    if (valuestory.Id == "" || valuestory.Id == null) 
    { 
       //what code to add to change status code to 400 and to display error message? 
    } 
 
    //what code to put if the id is not valid, what status code and what message? 
 
 
    var valueStoryName = (from vs in db.ValueStories 
                          where vs.Id == valuestory.Id 
                          select vs).ToList(); 
 
 
    List<ValueStory> vs1 = new List<ValueStory>(); 
    foreach (var v in valueStoryName) 
    { 
        vs1.Add(new ValueStory() 
        { 
            Id = v.Id, 
            ValueStoryName = v.ValueStoryName, 
            Organization = v.Organization, 
            Industry = v.Industry, 
            Location = v.Location, 
            AnnualRevenue = v.AnnualRevenue, 
            CreatedDate = v.CreatedDate, 
            ModifiedDate = v.ModifiedDate, 
            MutualActionPlan = v.MutualActionPlan, 
            Currency = v.Currency, 
            VSId = v.VSId 
        }); 
    } 
    return vs1.ToList(); 
 
} 

感谢有关如何正确执行此操作的一些帮助和指导。

请您参考如下方法:

将返回类型更改为 IHttpActionResult .

要返回 400 BAD REQUEST,返回 BadRequest() .

要返回 404 NOT FOUND,返回 NotFound() .

要返回列表数据,请返回 Ok(vs1) .

参见 documentation获取更多信息。

可选:如果您使用的是 Swagger 或 Web Api 帮助页面等文档工具,还要添加 [ResponseType(typeof(List<ValueStory>))]属性到您的操作方法。