2012-11-14 191 views
0

我有一個Web應用程序A,它具有一個也是應用程序的虛擬目錄B.我試圖在A中創建一個MVC路由,使得URL看起來像是在虛擬但仍然由A處理而不是B處理。但是,它似乎被忽略。有沒有辦法讓MVC路線優先於虛擬目錄?重寫MVC路由的虛擬目錄

回答

0

所以你有兩個應用程序A & B.你說你試圖創建MVC路線,但在哪個應用程序?如果你可以更多地解釋你想要達到的目標,那麼回答起來會更容易一些。

ASP.net路由(也可以在網絡表單中)可以採取任何你想要的形式。你必須記住的一件事路線圖是貪婪的。因此,如果大多數通用路由首先被發現,那麼無論如何都不會檢查下面的任何內容。所以順序應該是最具體的,最後一個應該是最一般的。

檢查這個帖子http://yogiorchard.azurewebsites.net/archiving-items-and-a-routing-lesson

希望這有助於

+0

我說這些應用程序中的路線是在問題。 ;) –

1

如果你想要一個應用程序重寫應用程序B,你將不得不增加一些URL重寫配置,而不是MVC路由邏輯,這,如果您使用IIS7 +,我相信您應該在AppA的web.config文件中進行設置。IIS必須知道將請求轉發給哪個應用程序;在調用MVC路由的時候,應用程序已經在那個時候被選中(一旦實際的應用程序被調用*,你不能取消選擇B)。你也許可以在App B中設置url重寫規則來指向應用程序A,但我不太確定這是如何工作的。

請注意,我所說的關於應用程序調用的說法很可能不完全正確。但說實話,我不知道我是否可以完全準確地描述url重寫請求的生命週期;我只是希望我粗略地近似了簡單的說法。只要詳細瞭解網址在IIS和IIS7的請求生命週期改寫訪問以下鏈接:

http://www.iis.net/learn/extensions/url-rewrite-module/using-the-url-rewrite-module http://msdn.microsoft.com/en-us/library/bb470252(v=vs.100).aspx