2012-02-20 73 views
0

我有一個現有的傳統的ASP/ASP MVC應用混合動力被忽略。這是慢慢變得不太經典的ASP和更多的ASP MVC。總的來說,這工作得很好。然而,一個棘手的問題是,當存在與路由url相匹配的現有文件夾時,mvc路由會失敗。ASP MVC路線混合動力車傳統的ASP網站

例如,路徑[siteroot]\account\personaldetails\billing.asp上有一個現有頁面,這通常在url上提供http://host.com/account/personaldetails/billing我已經刪除了asp文件並構建了一個asp mvc視圖來替換它。

我的路由工作正常,如果賬戶文件夾完全從應用程序中刪除,但如果賬戶文件夾是存在的,當我嘗試訪問新的觀點,我收到了404我怎樣才能解決這個得到什麼?

+0

我相信你如何配置(啓用)你的路由必須影響這一點。爲了進行路由工作,路徑必須由ASP.NET管道處理 - 我懷疑帳戶文件夾存在時不會發生這種情況。也許,您需要添加特殊條目,以便ASP.NET中明確處理帳戶文件夾下的擴展名較少的路徑,而使用.asp處理的名稱則由傳統的ASP擴展處理。這可以幫助你(對於IIS 6):http://haacked.com/archive/2010/12/22/asp-net-mvc-3-extensionless-urls-on-iis-6.aspx。你還應該發佈IIS版本,你怎麼做路由等更好的答案! – VinayC 2012-02-20 10:20:51

回答

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>