【问题标题】:How does ASP.NET WebPages implement extensionless URLs?ASP.NET WebPages 如何实现无扩展 URL?
【发布时间】:2011-01-15 14:07:50
【问题描述】:

我想为我自己的构建提供程序实现相同的功能。


我说的是 Visual Studio 中的 ASP.NET 网页应用程序:文件 > 新网站 > ASP.NET 网站(Razor)
与 Cassini 一起工作,所以它不是 IIS Express 的东西。

【问题讨论】:

    标签: asp.net razor asp.net-webpages


    【解决方案1】:

    我找到了,它是一个 HTTP 模块,System.Web.WebPages.WebPageHttpModule 该模块检查文件是否存在,如果存在,它会从该文件创建一个处理程序并将请求重新映射到该处理程序。

    【讨论】:

    • 你有完整的样本吗?
    【解决方案2】:

    Razor 是一个模板引擎。它与 URL 无关。它们由 ASP.NET 路由引擎处理。从 IIS 7.0 开始支持无扩展 URL。在 IIS 6.0 中,如果要支持无扩展 url,则需要将 aspnet_isapi 扩展与所有传入请求相关联。

    【讨论】:

    • 那是路由?我说的是你在没有注册任何路由的情况下请求一个剃须刀文件。
    • 您说的是哪种应用程序?通常不应直接请求剃刀文件。你在谈论 WebMatrix 吗?如果,是的,它建立在 ASP.NET 引擎和支持无扩展 URL 的 IIS Express Web 服务器之上。
    • @Darin Dimitrov:我已更新问题以回答您的问题。它也适用于卡西尼,问题是,如何?
    • 所以您正在创建一个新的 ASP.NET 网站。网址也不是扩展名。它们的形式为:/sitename/default.cshtml。其工作方式是 Web 服务器(在您的情况下为 Cassini)接收剃须刀模板的请求并将其传递给将呈现 HTML 的 ASP.NET 引擎。
    • @Darin Dimitrov:嗯,不。 URL 是无扩展名的,这有效:localhost:50209/WebSite2/About,其中剃刀文件是 ~/About.cshtml
    【解决方案3】:

    如果您正在构建一个不带 MVC3 的 ASP.Net WebPages 站点并想提及它,我发现了有关“路由”的这些信息。

    Creating More Readable and Searchable URLs - About Routing

    HTH

    【讨论】:

      猜你喜欢
      • 2013-03-14
      • 2012-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多