【发布时间】:2012-04-07 13:35:06
【问题描述】:
我会尽量做到简洁。
- 网页包含允许过滤和排序的表格
- 对过滤和排序的更改应反映在 URL 中,以便用户可以添加书签或共享过滤后的视图。
问题是:允许所有排序和过滤语法成为 URL 的一部分并在服务器上轻松解释/使用它而无需编写一堆解释它的自定义代码的有效约定是什么?
我一直在做一些研究,发现了 OData URI 约定,我喜欢他们做事的方式。 http://www.odata.org/developers/protocols/uri-conventions
更多研究表明,MVC 4 Web API 允许通过返回 IQueryable 来使用该约定。这看起来很棒,除了一个部分......我现在没有实现一个 RESTful API,这就是它似乎可以使用的全部内容。那么如何使用 OData 之类的东西并仍然返回 View 或 PartialView?有什么东西可以将 OData URI 约定解析为 C# 对象吗?
如果有人对此问题有任何见解或建议,我会全力以赴。
【问题讨论】:
-
当您说 MVC 4 Web Api 时,您是指 Asp.Net 的吗?如果是这样,url 参数会自动传递给操作方法,并会尝试将其解释为您在操作方法的签名中声明的类型。
-
是的,因此我们了解了 ASP.NET MVC,是的,我知道参数如何与操作方法一起使用。问题在于,当您将复杂的过滤器放入 URL 时,事情会变得棘手。我希望有一个可以为我处理它的约定/框架。 MVC 4 的 Web API 非常接近为我处理它,但它专注于数据 API,我需要常规 Views 和 PartialVies
-
您是如何首先生成过滤器列表的?它们是否存储在数据库中?从数据集中动态生成?硬编码到页面中?
-
Telerik Grid for MVC 使用类似的东西。这是一个开源项目,看看他们的代码:telerik.com/products/aspnet-mvc/grid.aspxtelerikaspnetmvc.codeplex.com
标签: asp.net-mvc filter partial-views odata asp.net-web-api