控制器如何知道哪些視圖返回?我認爲這是通過命名約定,但我看到了例子,例如在名稱不匹配的書呆子晚宴應用程序中。我在哪裏或如何看到這個映射?謝謝。asp.net mvc - 視圖和控制器
2
A
回答
6
public class EmployeesController
{
public ViewResult Index()
{
return View("CustomerName");
}
}
將搜索:
Views/Employees/CustomerName.aspx
Views/Employees/CustomerName.ascx
Views/Shared/CustomerName.aspx
Views/Shared/CustomerName.ascx
這幾乎是它..
當你剛剛返回查看();沒有指定名稱,它搜索與控制相同名稱的視圖。在這種情況下,Index.aspx
0
它基於控制器中Action的名稱。這裏有一個例子:
我有一個名爲UserController的控制器。
我在該控制器上的一個操作被命名爲Index。
當我說return View();
它看起來在瀏覽目錄,在用戶文件夾中,Index.aspx的或Index.ascx
此外,它也會在共享文件夾。
2
有三種方法可以指定視圖名稱。
按照慣例
public ActionResult MyAction {
return View()
}
這將尋找與行動方法的名稱的視圖,又名 「MyAction.ascx」 或 「MyAction.aspx」
**通過名稱* *
public ActionResult MyAction {
return View("MyViewName")
}
這將查找名爲「MyViewName.ascx」或「MyViewName.aspx」的視圖。
**通過應用程序的路徑**
public ActionResult MyAction {
return View("~/AnyFolder/MyViewName.ascx")
}
這最後一個看起來只有在這一個地方,你指定的地方。
相關問題
- 1. ASP.Net MVC隨機,控制器和視圖
- 2. 重用ASP.NET MVC視圖和控制器
- 3. ASP.Net MVC控制器和視圖交互
- 4. 部分視圖控制器ASP.NET MVC
- 5. ASP.NET MVC 2.0:共享視圖控制器
- 6. 如何使用視圖和控制器顯示圖像ASP.NET MVC
- 7. Angularjs和Asp.Net MVC控制器
- 8. IoC和ASP.NET MVC控制器
- 9. ASP.NET MVC:控制控制器/視圖的命名約定?
- 10. MVC模式 - 控制器和視圖
- 11. MVC嵌套控制器和視圖
- 12. MVC:控制器和視圖通信(C#)
- 13. MVC控制器不控制視圖
- 14. ASP.NET MVC如何鏈接視圖和控制器?
- 15. Asp.Net MVC控制器 - 動作和視圖映射元數據
- 16. ASP.Net MVC 2文件組織;視圖和控制器
- 17. asp.net mvc視圖和控制器中的多對多
- 18. 如何:頁面視圖和控制器在ASP.NET MVC中繼承
- 19. 無法在ASP.NET MVC中創建控制器和視圖
- 20. asp.net mvc在視圖和控制器之間傳遞參數
- 21. ASP.NET MVC - 一個控制器和多個模型/視圖
- 22. 通用ASP.NET MVC模型,控制器和視圖
- 23. ASP.NET MVC 2:在視圖和控制器中測試什麼
- 24. Asp.net視圖模型和控制器MVC繼承
- 25. ASP.NET MVC如何動態創建控制器和視圖?
- 26. ASP.Net MVC 3 - 單控制器,單作用和多視圖
- 27. ASP.NET MVC視圖和控制器輸出緩存
- 28. 在視圖和控制器使用ASP.NET
- 29. ASP.Net MVC控制器
- 30. MVC另一個控制器或視圖?
您傳遞給View()的參數是否意味着它將搜索的名稱?另外,有沒有辦法讓控制器在特定區域尋找視圖? – Crios 2009-08-06 14:41:55
參數是視圖的名稱,例如CustomerName = CustomerName.aspx。據我所知,mvc的位置是硬編碼的,但你可以自定義開發一個ViewEngine。 ViewEngines.Engines.Add(new MyCusyomViewEngine()); //Global.asax.cs – 2009-08-06 14:45:46
這些位置實際上是使用默認viewengine進行硬編碼的。 而參數確實是視圖的名稱。總是指定視圖的名稱是最佳做法,因爲您可以通過這種方式對其進行單元測試。 – 2009-08-06 14:56:02