2010-12-07 261 views
1

我有一個與控制器同名的實際文件夾。因此由此產生的鏈接:路由問題

<li><%= Html.ActionLinkForAreas<BlaController>(c => c.Index(1), "BlaDiBla")%></li> 

例如,

www.bla.com/foldername(其中foldername =控制器名)

停止工作。

我想知道如何才能避免這種行爲儘可能容易(我需要具有相同名稱的文件夾)。

謝謝。

最良好的祝願,

基督教

+0

我迄今發現的最佳解決方案是:routes.RouteExistingFiles = true;這可能太粗糙了。你怎麼看? – cs0815 2010-12-07 15:24:18

回答

2

IIS不獲得優先權,但在System.Web.Routing的ASP.net路由引擎看路線之前查找物理文件(或目錄)你已經定義了。

您可以使用RouteCollection.RouteExistingFiles屬性在全局級別切換此屬性,然後該屬性將使您的路由定義優先於文件系統。當你改變這個時,確保你測試了你所有的路線!

另請參閱此問題Considerations when turning on RouteExistingFiles

+0

謝謝。這似乎工作:routes.RouteExistingFiles = true; routes.IgnoreRoute(「Content/{* wildcard}」); – cs0815 2010-12-09 09:32:29