【问题标题】:When to use a routing rule vs query string parameters with asp.net mvc何时使用路由规则与带有 asp.net mvc 的查询字符串参数
【发布时间】:2010-03-26 20:31:37
【问题描述】:

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

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

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-routing query-parameters


    【解决方案1】:

    我建议您尽可能保持 URL 的整洁,并尽可能尝试使用路由。您应该尝试制作将向用户传达信息的 RESTful URI。例如:

    www.yourdomain.com/Products/Sports/Clothing
    

    干净很多
    www.yourdomain.com/Products?Department=Sports&SubDepartment=Clothing 
    

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

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

    【讨论】:

      【解决方案2】:

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

      在 URL 中维护查询字符串要困难得多。使用 ActionLink 和其他路由感知助手时,它们不会呈现。

      【讨论】:

      • 我可以理解“可选值很难在路由中处理”。你能把那句话说清楚一点吗?
      • url 将在路径中具有可选值。假设您有可选值“OrderBy”和“FilterBy”。在路径中会是什么样子?也许像 /mycontroller/myaction/orderbyprice/filterbyisavailable 之类的。如果 OrderBy 不存在,您的路径将变为 /mycontroller/myaction/{a value mapped to null}/filterbyisavailable。如果您在路线末尾有可选值,则可以。
      猜你喜欢
      • 2017-11-03
      • 1970-01-01
      • 1970-01-01
      • 2012-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-17
      • 2010-11-01
      相关资源
      最近更新 更多