这看起来很简单,但对于我的生活,我无法弄清楚。
使用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
我原以为这会起作用:
routes.MapPageRoute("ApiRoute","api","~/Api/Api.aspx");
但它没有...我仍然按下/api/Default.aspx
编辑: 我也想支持/abc/abc.aspx和/thing/thing.aspx,主要是因为当我在IDE中打开这些页面时,他们并没有全部命名为" Default.aspx"我无法快速查看哪个页面是哪个。
答案 0 :(得分:0)
我创建了一个小型演示项目。 每个文件夹我想设置特定默认文档,我添加了web.config
文件。
项目结构
每个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部署