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

asp.net-mvc-4 – ASP.NET MVC Web Api无法将QueryString映射到

发布时间:2020-12-15 18:48:12 所属栏目:asp.Net 来源:网络整理
导读:使用Web API,参数请求始终为空。我使用强类型对象作为参数,而不是简单的类型作为参数,我缺少一些东西。 网址 http://localhost:2222/api/v1/divisions?EventId=30 控制器动作 public virtual ApiDivisionsResponse Get(ApiDivisionsRequest request) { re
使用Web API,参数请求始终为空。我使用强类型对象作为参数,而不是简单的类型作为参数,我缺少一些东西。

网址

http://localhost:2222/api/v1/divisions?EventId=30

控制器动作

public virtual ApiDivisionsResponse Get(ApiDivisionsRequest request)
        {
            return _apiDivisionsService.GetDivisions(request);
        }

目的

public class ApiDivisionsRequest : ApiAuthorizedRequest
    {
        public ApiDivisionsRequest()
        {
            Page = 1;
            PageSize = 10;
        }

        public int EventId { get; set; }
        public int PageSize { get; set; }
        public int Page { get; set; }
        public string[] Includes { get; set; }
    }

解决方法

我非常强烈地邀请您阅读 following article,以更好地了解参数绑定在Web API中的工作原理。读完之后,您将明白,默认情况下,Web API将查询字符串参数绑定到基本类型,并将身体内容请求到复杂类型。

因此,如果需要将查询字符串参数绑定到复杂类型,则需要通过使用[FromUri]参数装饰参数来覆盖此默认行为:

public virtual ApiDivisionsResponse  Get([FromUri] ApiDivisionsRequest request)
{
    ...
}

是的,我同意你的看法 – 这是一个糟糕的地方 – 在ASP.NET MVC中,模型绑定非常简单,他们在Web API中创造了一个噩梦。但是一旦你知道它是如何工作的,你就可以避免这种烦恼。

(编辑:李大同)

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

    推荐文章
      热点阅读