Javascript Web API MVC从ng表获取查询参数?

Javascript Web API MVC从ng表获取查询参数?,javascript,asp.net,angularjs,asp.net-web-api2,ngtable,Javascript,Asp.net,Angularjs,Asp.net Web Api2,Ngtable,我一直在尝试让ng table(angular指令)与web api(ASP.NET MVC)一起工作。我可以加载和页面的数据,但排序或过滤将无法工作 奇怪的是,排序或过滤在URL中看起来是这样的: 如果您要“格式化”它,它将如下所示: 过滤器[rating.name]=fs 排序[评级说明]=asc 我试图用字符串数组或字典(KeyValuePair)获取它们 但我无法得到这些值。因此,我无法对数据进行过滤或排序 我希望你能给我一些建议!我感谢你的帮助 您是在询问指令语法还是api 在ng

我一直在尝试让ng table(angular指令)与web api(ASP.NET MVC)一起工作。我可以加载和页面的数据,但排序或过滤将无法工作

奇怪的是,排序或过滤在URL中看起来是这样的:

如果您要“格式化”它,它将如下所示:

过滤器[rating.name]=fs
排序[评级说明]=asc

我试图用字符串数组或字典(KeyValuePair)获取它们

但我无法得到这些值。因此,我无法对数据进行过滤或排序


我希望你能给我一些建议!我感谢你的帮助

您是在询问指令语法还是api

在ng table指令中,插入
标记
排序
或/和
筛选
属性,如:

<td width="10%" data-title="'NUM'|translate" filter="{ 'num': 'text' }" sortable="'num'"><span>{{item.num}}</span></td>
{{item.num}

我编写了一个助手类来处理这个问题。URL的格式不是WebAPI所期望的,因此无法让ModelBinder自动解析它

从控制器中,呼叫帮助者并提供整个URL:

// Parse sortings
var sortings = TableHelpers.ParseSortings(Request.RequestUri).ToList();
// Parse filters
var filters = TableHelpers.ParseFilters(Request.RequestUri).ToList();
和helper类

public static class TableHelpers
{
    public static IEnumerable<TableSorting> ParseSortings(Uri requestUri)
    {
        var regex = new Regex("sorting%5B(.+?)%5D=(asc|desc)");
        var matches = regex.Matches(requestUri.AbsoluteUri);
        return from Match match in matches
            select new TableSorting {Field = match.Groups[1].Value, Order = match.Groups[2].Value};
    }

    public static IEnumerable<TableFilter> ParseFilters(Uri requestUri)
    {
        var regex = new Regex("filter%5B(.+?)%5D=(.+?)(?:&|\\z)");
        var matches = regex.Matches(requestUri.AbsoluteUri);
        return from Match match in matches
            select new TableFilter {Field = match.Groups[1].Value, Value = match.Groups[2].Value};
    }
}

public class TableSorting
{
    public string Field { get; set; }
    public string Order { get; set; }
}

public class TableFilter
{
    public string Field { get; set; }
    public string Value { get; set; }
}
公共静态类TableHelpers
{
公共静态IEnumerable解析器排序(Uri请求Uri)
{
var regex=new regex(“排序%5B(+?)%5D=(asc|desc)”;
var matches=regex.matches(requestUri.AbsoluteUri);
在比赛中从比赛中返回
选择新表排序{Field=match.Groups[1]。值,顺序=match.Groups[2]。值};
}
公共静态IEnumerable ParseFilters(Uri请求Uri)
{
var regex=new regex(“过滤器%5B(+?)%5D=(。++)(?:&| \\z)”;
var matches=regex.matches(requestUri.AbsoluteUri);
在比赛中从比赛中返回
选择new TableFilter{Field=match.Groups[1].Value,Value=match.Groups[2].Value};
}
}
公共类表排序
{
公共字符串字段{get;set;}
公共字符串顺序{get;set;}
}
公共类表过滤器
{
公共字符串字段{get;set;}
公共字符串值{get;set;}
}

我已经开始工作:)我需要知道当你使用服务器端数组时,我如何读取Web API控制器中的查询字符串参数?这个助手类是专为ngTable编写的吗?是的,正则表达式是用来解析URL ngTable generatesOkay的,谢谢,我会在有时间的时候尝试。但是乍一看很好:)如果行得通,我会接受你的回答!