Asp.net

MVC3 Controller 文件夾不會出現在 URL 中

  • July 2, 2011

這只是一個例子,我不知道如何讓它工作。

在我的 MVC3 Controller 文件夾中,如果我添加一個名為“Admin”的新文件夾並添加一個帶有“Index”操作的控制器“News”,當您嘗試打開該 url (404) 時會出現伺服器錯誤:

http://url/管理員/新聞

即使你在後面輸入“/Index”,它也不起作用。你如何建立一個層次結構來產生相似的 URL?為了清楚起見,我想創建如下 URL:

http://url/folder1/folder2/controller/action

謝謝

您似乎仍在以“物理文件路徑”的心態思考。.NET MVC 使用路由的概念,您可以在其中定義映射到控制器類和操作的路由。簡而言之,您不是在映射到文件,而是在映射到一個類。

如果您查看 web 項目的 global.asax 文件,您將看到一個名為 RegisterRoutes() 的方法。此方法為您的站點連接所有可用路由,這些路由將用於查找要執行的正確控制器/動作/參數/模式。

現在,我建議解決您正在尋找的問題的方法是創建一個區域。聽起來您想在您的網站上設置一個管理部分,所以我會執行以下操作:

右鍵點擊您的網站項目,選擇“添加”,選擇“區域”

在此處輸入圖像描述

給你的區域起個名字,在這種情況下“管理員”是有意義的

您的解決方案資源管理器現在將添加“區域”管理員。注意它是如何模仿標準項目的結構和佈局的,只是在它自己的文件夾中。

在此處輸入圖像描述

在新創建的管理區域中添加一個控制器並將其命名為“新聞”添加您的操作

這是執行此操作的測試結果 URL:

在此處輸入圖像描述

這個解決方案是為了簡單起見。如果您想進一步了解,您將不得不深入研究在我上面提到的 RegisterRoutes() 方法中創建自己的路由。路由是您應該牢牢掌握的東西,因此我建議您這樣做。

引用自:https://stackoverflow.com/questions/6555896