【问题标题】:how do I make ASPX Web pages without file extensions?如何制作没有文件扩展名的 ASPX 网页?
【发布时间】:2010-11-10 18:58:09
【问题描述】:

我注意到 stackoverflow.com 的页面上没有文件扩展名。我将如何使用 aspx 网站做到这一点?

【问题讨论】:

    标签: asp.net url


    【解决方案1】:

    这些 URL 实际上并不指向文件。他们使用 URL 重写规则将 URL 转换为数据库查询并将输出反馈到指定页面(其 URL 未显示)。

    编辑:澄清 SO 使用 MVC,因此 url 指向特定的控制器操作(带或不带参数,取决于页面)。动作运行一些代码来抓取数据或其他东西并将其传递给相应的视图,该视图基本上是一个 html 模板,用于填充动作提供的信息并呈现页面。

    【讨论】:

    • 嗯。有点。它实际上调用了一个控制器操作方法,该方法可能执行 db 查询并呈现与 url 相关的特定视图。
    • 这怎么可能是公认的答案?这完全是胡言乱语。 :)
    【解决方案2】:

    MVC

    他们使用 MVC

    【讨论】:

      【解决方案3】:

      这是 Scott Guthrie 的一篇精彩文章:

      http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx

      涵盖所有场景:IIS 6、IIS7、使用第三方 URL 重写工具等。

      【讨论】:

        【解决方案4】:

        Stack Overflow 使用 ASP.NET MVC,它可以清理开箱即用的 URL。

        基本上,您需要的是获取干净的 URL,然后将其映射到标准的 .NET URL,并传入额外的“目录”作为参数。例如将 /blog/post-no-one 重写为 /blog.aspx?id=post-no-one。

        新的 IIS 有一个重写插件,如果你想用传统的 ASP.NET 来做这件事:

        Using URL rewrite module

        或者您可以通过覆盖 HttpModule 并在其中进行重写来创建自己的。这是一个复杂的例子:

        URL rewriting engine

        【讨论】:

          【解决方案5】:

          正如一些人所提到的,SO 正在使用 MVC 中包含的 URL 路由引擎。他们实际上已经通过 CodePlex 提供了代码,因此您可以在基于 Web 表单的 ASP.NET 站点中使用它。

          Phil Haack 对如何做到这一点做了一个很好的总结:

          Routing w/WebForms

          它包括有助于您入门的示例、链接等。

          【讨论】:

            【解决方案6】:

            如果您仍然想使用 ASP.Net 而不使用 MVC 路由(MVC 很棒,顺便说一句),您可以使用 HTTP 处理程序路由请求。

            http://msdn.microsoft.com/en-us/library/ms227675(v=vs.100).aspx

            【讨论】:

              猜你喜欢
              • 2011-04-02
              • 2014-12-14
              • 1970-01-01
              • 2012-12-11
              • 1970-01-01
              • 2010-09-24
              • 1970-01-01
              • 1970-01-01
              • 2016-12-24
              相关资源
              最近更新 更多