2015-05-13 48 views
-2

我對MVC部分視圖的搜索順序感到困惑。MVC部分視圖搜索順序?

例如,從d我的網站網址:\ mysite的是: http://localhost:8039/Admin/Contents/Create/FundswireArticle

沒有實體文件夾,名爲d:\ mysite的\ Admin或d:\ mysite的\管理\目錄(它們是由路由控制到其他地方)。

從文件監視器,我實際上看到我的應用程序試圖找到 d:\ mysite \ Admin和d:\ mysite \ Admin,它找不到它(因爲它不在那裏),那麼它去使用路由。

這是MVC的正常行爲(我在.net 4.5下運行)?

+1

你的問題不清楚,你能詳細說明一下嗎? – ramiramilu

+0

什麼部分不清楚?假設我訪問http:// localhost:8039/Admin/Contents/Create/FundswireArticle。我沒有一個名爲Admin的物理文件夾,而是路由表將路由流量到/ Jerry/Test。從sysinternal文件監視器,我可以看到IIS首先嚐試在本地硬盤上找到Admin文件夾和Admin/Create Folder。然後它會去路由表去真正的地方。 – daxu

+0

您的網站內容在哪裏?什麼是你的路由配置?你有沒有創建任何虛擬目錄? – ramiramilu

回答

0

看起來這是MVC現在的正常行爲。我簡化了測試代碼:

routes.MapRoute(
      name: "Test", 
      url: "{Test}/{Index}/{id}", 
      defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
     ); 

URL訪問是:http://localhost:6666/Test/Index 你可以看到路由將路由流量到家庭控制器。

從文件監視,我看到了這些:

請求文件d:\ testspeed \測試

請求文件d:\ testspeed \測試\ Web.config文件

請求文件d:\ testspeed \測試\指數

請求文件d:\ testspeed \測試\首頁\ Web.config文件

所有請求失敗,因爲沒有測試文件夾。 然後它讀取bin文件夾中的所有dll,web donfigs,然後加載 主文件夾和所有javascript。

此演示在契約MVC將搜索具有相同名稱的網址中提到的物理文件夾。