如何开发 ASP.NET Web API 来接受复杂对象作为参数?

2023-12-24

我有以下 Web API (GET):

public class UsersController : ApiController
{
    public IEnumerable<Users> Get(string firstName, string LastName, DateTime birthDate)
    {
         // Code
    }
}

这是一个 GET,所以我可以这样称呼它:

http://localhost/api/users?firstName=john&LastName=smith&birthDate=1979/01/01

并接收用户的 xml 结果。

是否可以将参数封装到一个类中,如下所示:

public class MyApiParameters
{
    public string FirstName {get; set;}
    public string LastName {get; set;}
    public DateTime BirthDate {get; set;}
}

然后有:

    public IEnumerable<Users> Get(MyApiParameters parameters)

我已经尝试过,并且任何时候我尝试得到结果http://localhost/api/users?firstName=john&LastName=smith&birthDate=1979/01/01, the parameter一片空白。


默认情况下,复杂类型是从 body 中读取的,这就是为什么你得到 null 的原因。

将您的操作签名更改为

 public IEnumerable<Users> Get([FromUri]MyApiParameters parameters)

如果您希望模型绑定器从查询字符串中提取模型。

您可以在 MSFT 的 Mike Stall 撰写的优秀文章中阅读有关 Web API 如何进行参数绑定的更多信息 -http://blogs.msdn.com/b/jmstall/archive/2012/04/16/how-webapi-does-parameter-binding.aspx http://blogs.msdn.com/b/jmstall/archive/2012/04/16/how-webapi-does-parameter-binding.aspx

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何开发 ASP.NET Web API 来接受复杂对象作为参数? 的相关文章

  • MVC4 枚举和单选按钮列表

    我已经看到了一些关于此的线程 但似乎没有一个适用于 MVC4 因为 RadioButtonFor html 扩展方法 帮助程序不存在 假设我有一个枚举列表 即航空公司 public enum Airlines Unknown 0 Briti
  • Microsoft.Owin 类型(例如 OwinMiddleware 和 IOwinContext)与其他 Owin 服务器不兼容吗?

    如果我使用 OwinMiddleware 和 IOwinContext 等 Microsoft Owin 类型构建 OWIN 中间件 我的中间件是否可以与非 Microsoft Owin 主机 服务器一起使用 我正在查看中间件类Nancy
  • 仅为我自己的移动应用程序创建 API。我需要 OAuth 吗?

    我即将创建移动应用程序 iOS Android 等 来支持现有的 Web 应用程序 现在正在考虑如何从我的 Web 到我们的移动应用程序提供安全的 API ASP Net Web API OAuth 似乎是最好的方法 据我了解 它旨在支持针
  • HttpResponseMessage 的内容为 JSON

    我有一个 ASP NET MVC WEB API 由于多种原因 由于没有授权而重定向 我不能只使用一个简单的对象并在我的控制器方法中返回它 因此我需要 HttpResponseMessage 类来允许我重定向 目前我正在这样做 var re
  • Breezejs 加载具有相关数据的实体时出错

    毫无疑问 我在这里遗漏了一些明显的东西 所以也许互联网的集体力量可以向我指出这一点 我有一个代码优先的数据库结构 由用户 组和一个链接两者的 GroupUsers 表组成 EF 本身可以处理 n n 关系 但 Breezejs 需要显式地使
  • AADSTS50013:断言受众声明与所需值不匹配

    我有一个单页应用程序 可以使用 adal angular js adal js client 对 Azure 中的用户进行身份验证 返回的令牌被插入到 auth 标头中并传递到 Web API 服务器 此 Web api 使用代表工作流程为
  • MVC 对元素组强制进行 jQuery 验证

    我正在使用 MVC 4 设计的表单具有多个 DIVS 每个 DIVS 中有许多元素 我的目标是在用户填写字段时打开 关闭 DIVS 但是 我想对每个 DIV 而不是整个表单使用不显眼的验证 不单独检查每个元素是否可能 也许使用 DIV ID
  • 在 OData 中插入具有所需外键的实体

    EDIT 2 经过几个小时的研究 谷歌上几乎所有与 odata 相关的链接都变成了紫色 我发现 深度插入 的概念 link http docs oasis open org odata odata v4 0 cs01 part1 proto
  • EF5、SQL Server、经度和纬度

    我发现在 SQL Server 中存储纬度和经度的最佳类型是十进制 9 6 参考文献 1 在 SQL 数据库中存储纬度和经度数据时应使用什么数据类型 https stackoverflow com questions 1196415 wha
  • 使用信号器时会话超时

    我有一个网络应用程序 主要用于监控系统 它使用信号器从服务器 服务器推送 更新来刷新显示 该页面还有一些按钮 它们也使用相同的信号器连接将数据发送到服务器 问题是 signalr 使用单独的连接 因此即使它定期从服务器发送和接收数据 会话也
  • MVC 4 IntelliSense 无法在 Visual Studio 2010 的 Razor 中工作

    我将 Visual Studio 2010 与 ASP NET MVC4 一起使用 并且 IntelliSense for Razor 语法在应用程序的视图中对我不起作用 我能做些什么 还引用自 http sebnilsson com 10
  • 状态代码:404,原因短语:“未找到”,版本:1.1,

    我使用 Web api 自托管 public class TestController ApiController HttpPost public void Testp FromBody string title Console Write
  • 如何正确链接不同View之间

    我有一个master cshtml带有导航栏 我的第一个链接是另一个视图 ProjectManagement li a href Views ProjectManagement cshtml Project Management a li
  • AutoMapper.Mapper 不包含 CreateMap 的定义

    这可能是一个基本问题 但想知道我没有得到 AutoMapper Mapper CreateMap 方法 我使用了错误的 AutoMapper 参考 包吗 谢谢 静态版本CreateMap方法在 4 2 中已弃用 然后在版本 5 0 中从 A
  • SignalR 更新无法在 Chrome 上正常运行

    我创建了一个带有 SignalR 通知的 ASP MVC 4 应用程序 我在本地以调试模式运行它 并通过 IIS 发布在服务器上运行它 使用 Internet Explorer 11 时 这基本上可以正常工作 稍后解释 HTML1300 N
  • IsReusable 属性中的上下文切换

    是否可重用属性 下面是我的理解IsReusable财产 如果处理程序返回静态内容 将值设置为 true 是安全的 但如果线程返回动态内容 为了使其线程安全 IsReusable应设置为 false 在这种情况下 可能会发生上下文切换 这可能
  • Elmah 不会在 MVC 应用程序中记录 http post 请求的异常 - 如果请求包含 XML

    我在 MVC4 RC 应用程序中遇到了一个奇怪的问题 在 NET 4 0上运行 我刚刚设置 Elmah 来记录异常 错误 我基本上安装了埃尔玛MVC and elmah sqlserverNuGet 包 分别为2 0 0和1 2版本 它似乎
  • 从另一台设备访问 Azure 模拟器

    我有两个不同的项目 Windows Phone 8 应用程序 我正在真实的物理开发设备上运行 Azure 云服务 其中包含一个简单的 WebRole 端点 其中包含 ASP NET MVC WebAPI 我的目标很简单 使用从真实设备运行的
  • 在 Dapper 中处理 Oracle 数据库连接

    我正在尝试连接到 Oracle 数据库并尝试执行查询 下面是我的模型类 using System using System Collections Generic using System Linq using System Web usi
  • 自定义WebApi授权数据库调用

    我正在尝试确定我编写的自定义授权属性是否确实是一个好主意 Scenario假设我们有一系列商店 每个商店Store有一个主人 只有商店的所有者才能对商店进行CRUD操作 除了具有Claim这基本上超越了所有权要求 并表示他们可以在任何商店上

随机推荐