2015-02-27 3 views
0

Это кажется довольно простым, но для жизни меня я не могу понять.Set Default Start Document

Использование ASP.NET Classic (то есть не MVC), скажем, у меня есть сайт www.foo.com, в котором есть папка/api, а в этой папке находится файл api.aspx (т. Е. Вы попали на сайт www.foo .com/API/api.aspx)

Как я могу установить вещи (либо через Web.config переписывание или через MapPageRoute() в Global.asax.cs), так что www.foo.com/api

  1. хиты /api/api.aspx не /api/Default.aspx
  2. не показывает api.aspx в URL окне браузера (я просто хочу посмотреть, как www.foo.com/api или www.foo.com/api/)

я бы подумал, что это будет работать:

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

, но это не ... Я до сих пор хит /api/Default.aspx

EDIT: Я также хочу поддерживать /abc/abc.aspx и /thing/thing.aspx, в основном так, когда я открываю эти страницы в среде IDE, они не все имеют имя «Default.aspx», t быстро посмотрите, какая именно страница.

+0

Самый простой способ, чтобы получить эту работу было бы установить по умолчанию для документа Api.aspx в IIS. – Khan

+0

См. Мое редактирование; Я хочу несколько страниц, поэтому я не хочу, чтобы глобальный документ по умолчанию был назван api.aspx. – dlchambers

ответ

0

Я создал небольшой демонстрационный проект. Каждая папка Я хочу установить документ по умолчанию Я добавляю файл web.config.

структура проекта

Project Structure

Каждый файл web.config определяет файл по умолчанию для его папки.

web.config в folderA

<?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> 

ВНИМАНИЕ

Когда я сделал несколько тестов в моем developme nt webServer не работает. Но , когда я опубликовал мой проект на мой местный экземпляр IIS он действительно работал все в порядке.

локального развертывания IIS

local IIS deployment

+0

Отсутствие поддержки dev является проблемой :( – dlchambers

+0

это сработало для вас? –

+0

Поскольку он не работает в режиме dev, я не могу его использовать. Извините. – dlchambers