ASP MVC路由在混合经典asp站点中被忽略

时间:2012-02-20 09:51:18

标签: asp.net-mvc-3 asp-classic routing

我有一个现有的经典asp / asp mvc混合应用程序。这是慢慢变得不那么经典的asp和更多的asp mvc。总的来说这很好用。然而,一个棘手的问题是,当存在与路径URL匹配的现有文件夹时,mvc路由会失败。

例如,路径[siteroot]\account\personaldetails\billing.asp上有一个现有页面,这通常在网址http://host.com/account/personaldetails/billing上提供。我删除了asp文件并构建了一个asp mvc视图来替换它。

如果帐户文件夹已从应用程序中完全删除,我的路由工作正常,但如果我尝试访问新视图时帐户文件夹就在那里,我会得到404.我怎样才能解决这个问题?

1 个答案:

答案 0 :(得分:0)

事实证明,我所采用的重写规则是积极的。我只需要添加一个条件,以防止将简报作为.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>