Asp.net mvc 在asp.net mvc中何时使用路由规则与查询字符串参数
我们正在考虑推进一个ASP.NETMVC项目,并讨论了路由与参数的关系Asp.net mvc 在asp.net mvc中何时使用路由规则与查询字符串参数,asp.net-mvc,asp.net-mvc-routing,query-parameters,Asp.net Mvc,Asp.net Mvc Routing,Query Parameters,我们正在考虑推进一个ASP.NETMVC项目,并讨论了路由与参数的关系 考虑到如何在ASP.NET MVC中轻松设置两者之一或两者的组合,在使用其中一种或另一种时,我是否应该注意一些事项?在我的项目中,我们仅对可选值使用querystring。这主要是过滤、排序和分页列表。可选值在管线中很难处理 在URL中维护查询字符串要困难得多。使用ActionLink和其他路由感知帮助程序时不会呈现这些内容。我建议您尽可能保持URL的干净,并尽可能尝试使用路由。您应该尝试创建RESTful URI,将信息传
考虑到如何在ASP.NET MVC中轻松设置两者之一或两者的组合,在使用其中一种或另一种时,我是否应该注意一些事项?在我的项目中,我们仅对可选值使用querystring。这主要是过滤、排序和分页列表。可选值在管线中很难处理
在URL中维护查询字符串要困难得多。使用ActionLink和其他路由感知帮助程序时不会呈现这些内容。我建议您尽可能保持URL的干净,并尽可能尝试使用路由。您应该尝试创建RESTful URI,将信息传递给用户。例如:
www.yourdomain.com/Products/Sports/Clothing
比以前干净多了
www.yourdomain.com/Products?Department=Sports&SubDepartment=Clothing
如果您使用大量查询字符串,那么它将不是一个干净的URI,向用户传递的信息也会更少
尽管如此,我们的团队确实使用jquery为ajax类型的请求使用查询字符串。这是因为这些URI在我们的标记中,不会在浏览器窗口中看到。这有助于使我们的global.asax变得更小,因为它不会受到大量路线的污染 我可以理解“可选值在路由中很难处理”。你能更清楚地解释这句话吗?url的路径中会有可选值。假设您有可选值“OrderBy”和“FilterBy”。在路上会是什么样子?也许可以使用/mycontroller/myaction/orderbyprice/filterbyis这样的命令。如果OrderBy不存在,您的路径将变成/mycontroller/myaction/{一个映射到null}/FilterByAvailable的值。如果在路线末端有可选值,则可以。