【问题标题】:Url Rewriting vs. Routing网址重写与路由
【发布时间】:2010-10-29 06:47:20
【问题描述】:

我正在制作一个新的 asp.net 网页表单网站,并想美化我的网址 - 我想接受一个像“www.mysite.com/1-2,3”这样的网址并将其转为一个像这样“www.mysite.com/page.aspx?a=1&b=2&c=3”。就性能易于维护而言,哪个选项最适合此任务 - IIS7 Url Rewriting 或 Routing。顺便说一句,我打算使用中等信任的共享主机 IIS7,也许是 6。

过去我使用 PHP 的 mod_rewrite,对此我很满意,但现在整个网站都被翻译成 ASP.NET,我不知道该选择哪个选项。

PS - 我已经阅读了 thisthis,但是对于我的问题来说还不够清楚。

【问题讨论】:

标签: asp.net url-rewriting url-routing


【解决方案1】:

我会为使用路由做一个强有力的论据。它将请求资源解析逻辑保留在您的应用程序中,因此您可以在需要时轻松添加依赖于应用程序的逻辑,并且无需在应用程序和单独的配置资源之间保持同步。

路由works great with traditional webforms

URL 重写通常(但不总是)是对问题的补偿,而不是解决方案 - 服务器软件和框架仍然围绕代表物理资源的旧网页概念构建。页面。但是,网络应用程序应该react to requests as commands;但只是相对较新的现代 Web 框架才开始原生支持该模型。路由是这些发展之一。

【讨论】:

    【解决方案2】:

    我强烈建议使用路由, 事实上,它会在下一个版本的框架中与 webforms 更加集成。 由于缺乏路由,URL 重写更像是一种“hack”。如果您已经有一个想要“发光”的项目,那么 url 重写就可以了。

    但是当从头开始时,我肯定会使用路由。

    路由隐藏了您的应用程序结构,让您更多地考虑您的网址,作为您想要显示的内容的路径,而不是带有参数的某些页面的路径。 并且您不必在更改内容时跟踪两件事,就像重写一样。

    更多内容在this article

    【讨论】:

      【解决方案3】:

      IIS 5/6 使用 ISAPI 过滤,这基本上相当于 IIS 的 mod_rewrite。听说IIS7的url重写比ISAPI容易管理和配置。

      【讨论】:

        【解决方案4】:

        这取决于您使用的是经典的 ASP.Net 还是新的 MVC 框架。我对 MVC 框架没有任何经验,但听起来它开箱即用地支持您正在寻找的东西。

        在经典的 ASP.Net 方面,我们目前正在使用一个名为 ISAPI_Rewrite 的 IIS 扩展。它的行为类似于 Apache 的 mod_Rewrite,并且它们有一个免费版本,您可以使用它,它具有付费版本的大部分功能(100 美元)。

        【讨论】:

        • 今天学到了很多关于 MVC 的知识,用这个框架“美化” url 似乎超级容易
        • 路由是独立于 MVC 的实体。 MVC 只是使用路由,就像 WebForms 一样。
        • 没有“经典”asp.net 或 MVC 这样的东西......有 WebForms,然后有 MVC,它们都建立在 asp.net 之上!
        猜你喜欢
        • 2019-09-11
        • 2013-09-24
        • 1970-01-01
        • 2013-08-21
        • 2016-01-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多