在MVC中绑定查询字符串参数

时间:2015-08-25 21:17:50

标签: asp.net-mvc query-string

是否有一种方法可以将MVC控制器中的查询字符串参数绑定到FromUri,它似乎只用于MVC API?

我有2个页面,可以有0到7个查询字符串参数,具体取决于用户选择的过滤器。我试图找到一种干净有效的方法来管理来自控制器的查询字符串参数,而不需要一堆if语句。每个页面的参数基本相同,因此创建一个两个页面都可以访问的queryParameter类是理想的。

在API控制器中它非常简单,我想做类似的事情。

任何想法都会受到赞赏。

谢谢,

朗达

编辑。

说我有以下课程:

public class QueryStringParams : IEnumerable
{
    public string Page { get; set; }
    public string Top { get; set; }
    public string Color { get; set; }
    public string Size { get; set; }
    public string Width { get; set; }
    public string Price { get; set; }
    public IEnumerator GetEnumerator()
    {
        yield return this.Page;
        yield return this.Top;
        yield return this.Color;
        yield return this.Size;
        yield return this.Width;
        yield return this.Price;
    }
}

在我的控制器中,我希望有这样的东西:

public async Task Index(string pathAlias,[Bind(Prefix =" QueryStringParams")] QueryStringParams queryParams)

类似于能够在API方法中执行此操作。

public async Task Get(string pathAlias,[FromUri] QueryStringParams queryParams)

然后引用querystring参数,如: var pageNumber = queryParams.Page;

查询字符串看起来像这样:

http://localhost:12330/br/womens-dresses-shop?page=2&Top=10&color=red

任何时候都可以设置或不设置所有参数。

那更清楚吗?

1 个答案:

答案 0 :(得分:0)

虽然不是100%理想,但这似乎有效。

public async Task Index(string pathAlias,[Bind(Include =" Page,Color")] BrowseQueryParams queryParams)

朗达