设置默认开始文档

时间:2015-02-27 16:49:22

标签: asp.net url-rewrite-module asp.net-routing

这看起来很简单,但对于我的生活,我无法弄清楚。

使用ASP.NET Classic(即非MVC),假设我有一个有/ api文件夹的网站www.foo.com,在该文件夹中是文件api.aspx(即你点击www.foo。 COM / API / api.aspx)

如何设置(通过Web.config重写或通过Global.asax.cs中的MapPageRoute()),以便www.foo.com/api

  1. 点击/api/api.aspx /api/Default.aspx
  2. 在浏览器的网址框中没有显示api.aspx(我只想查看www.foo.com/api或www.foo.com/api /)
  3. 我原以为这会起作用:

    routes.MapPageRoute("ApiRoute","api","~/Api/Api.aspx");
    

    但它没有...我仍然按下/api/Default.aspx

    编辑: 我也想支持/abc/abc.aspx和/thing/thing.aspx,主要是因为当我在IDE中打开这些页面时,他们并没有全部命名为" Default.aspx"我无法快速查看哪个页面是哪个。

1 个答案:

答案 0 :(得分:0)

我创建了一个小型演示项目。 每个文件夹我想设置特定默认文档,我添加了web.config文件。

项目结构

Project Structure

每个web.config文件都为其文件夹定义了一个默认文件。

folderA中的web.config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <defaultDocument enabled="true">
      <files>
        <clear/>
        <add value="a.aspx"/>
      </files>
    </defaultDocument>
    <modules runAllManagedModulesForAllRequests="true"/>
  </system.webServer>
</configuration>

因此 folderB

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <defaultDocument enabled="true">
      <files>
        <clear/>
        <add value="b.aspx"/>
      </files>
    </defaultDocument>
    <modules runAllManagedModulesForAllRequests="true"/>
  </system.webServer>
</configuration>

注意

  

当我在我的开发webServer 中进行了一些测试时,它无法正常工作。但   当我发布我的项目到我的本地IIS实例时,它确实可以运行   好的。

本地IIS部署

local IIS deployment