ASP MVC Маршруты игнорируются в гибридном классическом ASP-сайте - PullRequest
1 голос
/ 20 февраля 2012

У меня есть классическое гибридное приложение asp / asp mvc.Который постепенно становится менее классическим asp и больше asp mvc.В целом это работает отлично.Однако одной из проблем является то, что маршрутизация mvc завершается сбоем, когда существует существующая папка, соответствующая URL-адресу маршрута.

Например, существует существующая страница по пути [siteroot]\account\personaldetails\billing.asp, которая обычно подается по URL-адресу http://host.com/account/personaldetails/billing Я удалил файл asp и построил представление asp mvc для его замены.

Моя маршрутизация работает нормально, если папка учетной записи полностью удалена из приложения, но если папка учетной записи существует, когдаЯ пытаюсь посетить новый вид, я получаю 404. Как я могу обойти это?

1 Ответ

0 голосов
/ 20 февраля 2012

Оказалось, что мое правило переписывания было агрессивным. Мне просто нужно было добавить условие, чтобы новостная рассылка не воспринималась как файл .asp.

<rule name="account remove extension">
    <match url="^account(.*)" />
    <conditions logicalGrouping="MatchAll">
        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
        <add input="{REQUEST_FILENAME}" pattern="newsletter(.*)$" negate="true" />
     </conditions>
     <action type="Rewrite" url="account/{R:1}.asp" />
</rule>
...