1

我有這樣一個觀點文件結構返回特定視圖:問題在asp.net MVC3

Views 
    Company 
     Department 
     Employee 
      ManageEmployee.cshtml 

和控制器是

public class EmployeeController : Controller 
{ 
    public ActionResult Index(int dptId) 
    { 
      var loadedEmp = getEmpOf(dptId); 
      return View("Company/Employee/ManageEmployee", loadedEmp); 
    } 
} 

但控制器給我一個錯誤 - 告訴它可以找不到視圖。這些是它搜索的路徑。

~/Views/Employee/Company/Employee/ManageEmployees.aspx 
~/Views/Employee/Company/Employee/ManageEmployees.ascx 
~/Views/Shared/Company/Employee/ManageEmployees.aspx 
~/Views/Shared/Company/Employee/ManageEmployee.ascx 
~/Views/Employee/Company/Employee/ManageEmployee.cshtml 
~/Views/Employee/Company/Employee/ManageEmployee.vbhtml 
~/Views/Shared/Company/Employee/ManageEmployee.cshtml 
~/Views/Shared/Company/Employee/ManageEmployee.vbhtml 

基本上,如果我能夠消除員工部分,發動機就會找到它。

〜/查看/ 員工 /Company/Employee/ManageEmployee.cshtml 這個

〜/查看/公司/員工/ ManageEmployee.cshtml

就如何實現這一目標的任何見解。

謝謝。

+0

有點不相關/略有關係,但也許考慮使用T4MVC?這將避免'魔術串'。手動輸入視圖名稱時,它肯定是有幫助 - http://mvccontrib.codeplex.com/wikipage?title=T4MVC – 2011-01-05 21:02:04

+0

*您這裏有兩種選擇* **選項#1 ** *創建公司/部門/ **共享文件夾**內的員工目錄。您可以在根目錄的查看文件夾中找到共享文件夾* **選項#2 ** *創建員工/公司/部門/員工目錄indide查看根文件夾的目錄。* – 2013-07-19 10:06:24

回答

1

您需要按照ControllerNameController的MVCS約定控制器和ControllerName的視圖結構/ ...

如果你想在你的結構完全控制你需要切換到不同的框架就像FubuMVC

+1

絕對,我需要遵循MVC約定。我所做的解決我的情況是創建具有不同文件名的相同控制器的部分類,以分離邏輯,但具有我期待的URl結構。謝謝 – roncansan 2011-01-05 19:17:55

7

你試過:

return View("/Company/Employee/ManageEmployee", loadedEmp); 

它看起來像引擎正試圖視圖相對於在該網站,而不是從網站的根回到您的當前位置。

2

觀必須從以下列方式將控制器返回(用於特定視圖):

return View("ManageEmployee", loadedEmp); 

在MVC中,控制器將自動路由到視圖名稱你提供。

loadedEmp應該是您傳遞給視圖的對象。

1

如果你想要自己安排視圖文件夾結構的約定,最好插入你自己的視圖引擎。