c# - 将查询字符串中的多个值绑定(bind)到数组参数

标签 c# asp.net-core asp.net-core-mvc

我按照建议创建了以下 ActionMethod here :

[Route("[action]")]
public IActionResult Orders([FromRoute] int[] filterby)
{
    ICollection<Order> all;
    if(filterby.Length != 0)
    {
        all = _db.Orders.Where(s => filterby.Contains((int)s.Status)).ToList();
    }
    else
    {
        all = _db.Orders.ToList();
    }

    return View(all);
}

当请求 URI 类似于:

http://localhost:5000/admin/orders?filterby=0&filterby=1

filterby 参数始终是一个长度为 0 的数组。什么情况下我无法让它工作?

最佳答案

使用 ASP.NET core 时,您有两种选择:

  1. (推荐)使用新属性 [FromQuery]

  2. 导入包Microsoft.AspNet.Mvc.WebApiCompatShim并使用旧的[FromUri]

关于c# - 将查询字符串中的多个值绑定(bind)到数组参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36448028/

相关文章:

c# - 是否可以从堆栈跟踪中获取实际类型?

c# - .AsNoTracking() 有什么区别?

javascript - Aurelia - 无法使用 typescript skeeton 使 asp net core 工作

c# - 在 ASP.NET Core 应用程序中使用 NLog

c# - VS 2017 ASP.NET Core 测试项目 - Microsoft.AspNetCore.Identity 缺失

C# Outlook 从收件人那里获取 CompanyName 属性

c# - 如何访问运行方法的名称?

c# - 使用 HttpClient PostAsJsonAsync 在 ASP.NET Core 中发送 HTTP POST 消息

ef-code-first - 如何使用 Identity ASP.NET Core 通过代码优先迁移为用户和角色设定种子

asp.net-identity - NormalizedUserName VS DotNet Core 中的用户名