我對.net框架和整個MVC編程哲學相當陌生。有人可以澄清並給我一個基本的解釋,說明控制器如何使用C#與網站進行交互?我明白如何用C#編寫代碼,並理解框架的某些方面,但我不明白它們是如何結合在一起的。瞭解MVC4控制器
回答
模型 - 是一種表示某種對象(通常爲一種)的數據結構。其目的是讀取,寫入和管理對底層對象的訪問,目的是堅持應用程序狀態。
查看 - 用於向用戶顯示可視界面的組件,可能是使用模型。它可能是一個簡單的表格,或者是一個完整網頁的複雜組合。
控制器 - 用戶驅動的應用程序邏輯層位於視圖和模型之間。它處理用戶交互,加載模型並向用戶發送視圖。它根據用戶請求確定發送到視圖的模型。
應用程序的整體文件夾結構可能如下所示。
>> Website
>> Controllers
>> Models
>> Views
在C#MVC每個控制器必須具有後綴Controller
中的名稱,他們必須擴展控制器類和具有在視圖中的文件夾的名稱的前綴(不Controller
)的一個文件夾。此文件夾將包含與控制器上特定操作相關的所有視圖。
控制器可以包含任意數量的定義爲公共功能的動作。默認情況下,從控制器操作返回結果時,視圖的名稱必須與操作的名稱相對應。但是,您也可以按名稱指定視圖。從控制器加載視圖時,可以將對象作爲模型發送到視圖,並通過生成其內容。
控制器可以加載任何模型,不受任何限制。
一個Account
控制器定義如下,採取行動Login
。控制器放置在/Controllers
文件夾中的AccountController.cs
文件中,並且該控制器的任何視圖(Login
,在本例中爲文件名Login.cshtml
)都放在/Views/Account
文件夾中。
注意:命名約定必須正確,因爲在控制器和視圖之間使用名稱來鏈接數據。
public class AccountController : Controller
{
public ActionResult Login(string returnUrl)
{
if (User.Identity.IsAuthenticated)
{
return RedirectToAction("Index","Site");
}
return View("Login", new LogOnModel());
}
}
可通過http://www.mysite.com/Account/Login
訪問。如果用戶通過身份驗證,則控制器將重定向到主站點控制器,如果用戶未登錄,則會顯示Login
視圖,該視圖從指定的LogOnModel
加載數據。
這實際上只是觸及了可能的表面。閱讀ScottGu的一些精彩文章的一些在線信息,深入探討如何使用MVC。
ASP.NET MVC Framework Overview
ASP.NET MVC Framework How To - Part 1 // Part 2 // Part 3 // Part 4
注:這些文章是因爲他們對MVC 1版早在2007年寫的略顯陳舊,但怎樣的概念模型,視圖和控制器交互仍然適用。
真的挖這個例子。謝謝。 –
明確的解釋。真棒!謝謝... :) – Nageswaran
控制器有點作爲內部Web服務。他們將您的服務器端代碼暴露給您的視圖,並允許他們調用控制器。就模式而言,大多數人認爲控制器應儘可能薄。如果存在繁重的業務邏輯或其他業務邏輯,則應將其抽象爲應用程序的另一部分。在我看來,控制器在那裏爲視圖提供一些要調用的內容,然後返回該數據,無論是text/html,json還是xml。
這裏是一個偉大的信息財富,直接從來源:http://www.asp.net/mvc/mvc4
具體到現場,我會強烈建議的教程。它將使您更清楚地瞭解模型,視圖和控制器如何相互交互和相互依賴。 http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/intro-to-aspnet-mvc-4
感謝您的資源! –
控制器是一個具有方法的類,這些方法被稱爲動作,您將這些動作視爲「視圖」(cshtml文件)。
//This is your controller
public class HomeController : Controller
{
// This is your action
public ActionResult Index()
{
return View();
}
}
您可以右鍵單擊「索引」操作,然後選擇「添加視圖...」這將創建atached到行動的新觀點。
爲了獲得這一觀點,你會做這樣的事情:本地主機/控制器/動作 在這種情況下,它應該是:本地主機/首頁/指數,其中首頁=控制器,指數=動作
你應該閱讀有關the MVC pattern
微軟有一些很好的tutorials for beginers
感謝您的資源! –
控制器在ASP.NET MVC是韓德爾您的應用程序邏輯的請求響應的對象。它會根據請求創建(例如HTTP請求),並且直到由View層創建的響應纔可用。之後,它將是一個不可用的對象(並且GC很快就會釋放其分配的內存),並且對於另一個請求,必須創建一個新的控制器對象,等等。
我認爲這個定義很明顯,它爲什麼必須是輕量級的,以及如何使用它。
- 1. 瞭解視圖控制器
- 2. Asp.net MVC4,控制器構造
- 3. MVC4多個控制器
- 4. 瞭解模型 - 視圖 - 控制器
- 5. 瞭解笨基本控制器結構
- 6. 瞭解$資源和控制器
- 7. 調試(瞭解)什麼是控制器
- 8. Objective-C - 瞭解視圖控制器
- 9. iphone,瞭解視圖控制器,presentModalViewController
- 10. 瞭解角度控制器Vs指令
- 11. 瞭解websphere eportal服務器控制檯
- 12. 如何從控制器(Content.ReadAsAsync)通過參數API控制器mvc4
- 13. MVC4中的ActionLink無法解決控制器中的操作
- 14. 瞭解ASP.net mvc4代碼
- 15. 了JavaFx控制器
- 16. ASP.NET MVC4 Web API控制器序列化
- 17. MVC4 WebAPI與常規控制器
- 18. MVC4控制器/路由不工作
- 19. iis8上的asp.net mvc4默認控制器
- 20. ASP.NET WebAPI從MVC4控制器失敗
- 21. Ajax發佈到控制器 - MVC4
- 22. MVC4區域,主控制器和路由
- 23. 在MVC4中設置默認控制器
- 24. 將路徑傳遞給MVC4控制器
- 25. 從控制器ASP.NET MVC4 ArrayList中查看
- 26. 發佈枚舉到MVC4控制器
- 27. 從MVC4控制器消費Web API?
- 28. 無法刪除控制器名稱MVC4
- 29. 不同的控制器對asp.net MVC4
- 30. 發送純文本到控制器mvc4
http://www.codinghorror.com/blog/2008/05/understanding-model-view-controller.html看看這篇文章。它可能會回答你的問題。 –