2015-08-25 69 views
0

是否存在一种将MVC控制器中的查询字符串参数绑定到FromUri的等效方法,它似乎仅用于MVC API中?MVC中的绑定查询字符串参数

我有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; 
    } 
} 

在我控制器(S)我想有这样的事情:

公共异步任务索引(字符串路径别名,[绑定(前缀=“QueryStringParams”)] QueryStringParams queryParams)

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

公共异步任务获取(字符串路径别名,[FromUri] QueryStringParams queryParams)

然后引用该查询字符串参数,如: VAR PAGENUMBER = queryParams.Page;

查询字符串会是这个样子:

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

它可能有也可能没有全部设置在任何一个时间参数。

更清楚了吗?

+0

也许它可以帮助你http://stackoverflow.com/questions/17329342/does-model-binding-work-via-query-string-in-asp-net-mvc –

+1

查询字符串参数的模型绑定自动发生在asp.net MVC中。你需要更清楚你想要达到的目标。 – ataravati

+0

我们首先向我们展示您的控制器操作的外观以及您正在使用的查询字符串。 –

回答

0

虽然不是100%理想,但这似乎工作。

公共异步任务索引(字符串路径别名,[绑定(包括= “页面,颜色”)BrowseQueryParams queryParams)

朗达

+0

如果我想访问所有parmeters我可以做到这一点的: 公共异步任务索引(字符串路径别名,BrowseQueryParams queryParams) 我认为这是什么有人试图在一个评论说。我试图让事情复杂化。 – Rhonda

相关问题