何时使用asp.net mvc使用路由规则vs查询字符串参数

mwr*_*ght 7 asp.net-mvc asp.net-mvc-routing query-parameters

我们正在考虑推进ASP.NET MVC项目,并提出了路由与参数的主题.

看看如何在ASP.NET MVC中轻松设置其中任何一个或两者的组合,在使用其中一个时,我应该注意哪些注意事项?

amu*_*rra 6

我建议尽可能保持您的URL尽可能干净,并尽可能尝试使用路由.您应该尝试制作RESTful URI,以便向用户传达信息.例如:

www.yourdomain.com/Products/Sports/Clothing
Run Code Online (Sandbox Code Playgroud)

比...更清洁

www.yourdomain.com/Products?Department=Sports&SubDepartment=Clothing 
Run Code Online (Sandbox Code Playgroud)

如果您使用大量的查询字符串,那么它将不是一个干净的URI,并且向用户传达的信息较少.

话虽如此,我们的团队确实使用jquery为ajax类型请求使用查询字符串.这是因为这些URI在我们的标记中,并且不会在浏览器窗口中看到.这有助于保持我们的global.asax小一点,因为它不会受到大量路线的污染.


Mat*_*s F 5

在我的项目中,我们仅使用查询字符串作为可选值。这主要是过滤、排序和分页列表。可选值很难在路由中处理。

在 URL 中维护查询字符串要困难得多。当使用 ActionLink 和其他路由感知帮助器时,它们不会被渲染。

  • url 的路径中将包含可选值。假设您有可选值“OrderBy”和“FilterBy”。那在路径中会是什么样子?也许类似 /mycontroller/myaction/orderbyprice/filterbyisavailable 。如果 OrderBy 不存在,您的路径将变为 /mycontroller/myaction/{映射到 null 的值}/filterbyisavailable。如果您在路线末尾有可选值,那就可以了。 (2认同)