我正在try 使用从查询参数到对象的模型绑定进行搜索.

我的搜索对象是

[DataContract]
public class Criteria 
{
  [DataMember(Name = "first_name")]
  public string FirstName { get; set; }
}

我的控制器具有以下操作

[Route("users")]
public class UserController : Controller 
{
  [HttpGet("search")]
  public IActionResult Search([FromQuery] Criteria criteria)
  {
    ...
  }
}

当我按如下所示调用端点.../users/search?first_name=dave时,控制器操作上的Criteria属性为空. 但是,我可以不将端点称为Snake Case .../users/search?firstName=dave,并且Criteria属性包含属性值.在本例中,模型绑定起作用了,但当我使用Snake_case时就不起作用了.

如何将snake_case与模型绑定一起使用?

推荐答案

需要分别向模型属性添加[FromQuery]个属性

public class Criteria
{
  [FromQuery(Name = "first_name")]
  public string FirstName { get; set; }
}

Asp.net相关问答推荐

无法在Microsoft Windows Server 2016(数据中心)上运行.NET可移植性分析器

在Docker Windows中,ASP.NET核心容器在自定义端口8080上运行,但ASP.NET容器在固定端口80上运行

ASP.NET MVC forEach 循环仅返回 1 个值

是否可以发布 ASP.NET 5 应用程序以使目标机器不需要安装 DNX?

如何在 Javascript 中获取 C# 枚举

在 lambda 表达式中否定 Func

是否可以在没有那些 .svn 文件夹的情况下从 subversion 签出文件?

静态字段与会话变量

ASP.NET Web 应用程序消息框

如何在 ASP.NET 应用程序中使用 jQuery 捕获提交事件?

带有 ASP.NET MVC 6 锚标记助手的 QueryString

如何在新实现的接口或基类之间做出决定?

回发后 Document.Ready() 不起作用

解析器错误消息:无法加载类型网络营销

Web.Config 中的 Assemblies node 的用途是什么?

要调用此方法,Membership.Provider属性必须是ExtendedMembershipProvider的实例

会话存储在客户端还是服务器端

ASP.NET 身份,需要强密码

ASP.NET - 从静态方法/静态类访问会话?

获取 Application_Start 中的当前应用程序物理路径