【问题标题】:Web API passing Object to a Get methodWeb API 将 Object 传递给 Get 方法
【发布时间】:2017-09-20 07:12:09
【问题描述】:

有没有办法在 Web API 的 Get 方法中将对象作为参数传递?我有以下情况:

在我的 Web.API 项目中,Get 方法如下所示:

public IEnumerable<ArticleMetaData> GetComponentXMLByDate(ComponentRequest request)
        {
           // Some logic here
            return articleMeta;
        }

我的 ComponentRequest 对象如下所示:

public class ComponentRequest
    {        
        public string startdate { get; set; }
        public string enddate { get; set; }       
        public string pagenumber { get; set; }
        public string pagesize { get; set; }
    }

我想这样称呼它:

http://mydomain.com/api/values/?startdate=121922&enddate=063020&pagenumber=2&pagesize=100

在 ComponentRequest 方法中,请求为空。如果我将方法更改为接受多个字符串参数而不是对象,它可以正常工作。

我的设置是否遗漏了什么?

【问题讨论】:

    标签: asp.net-mvc asp.net-web-api


    【解决方案1】:

    我认为

    public IEnumerable<ArticleMetaData> GetComponentXMLByDate([FromUri]ComponentRequest request)
    {
        // Some logic here
        return articleMeta;
    }
    

    应该可以。

    Mike Stall 在how-webapi-does-parameter-binding 上有一篇好文章

    【讨论】:

      【解决方案2】:

      你需要使用[FromUri]属性。

      看下面的问题。 ASP.NET MVC Web Api Get Not Mapping QueryString To Strongly Typed Parameter

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-01-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-30
        • 1970-01-01
        • 2013-01-15
        相关资源
        最近更新 更多