iT邦幫忙

2023 iThome 鐵人賽

DAY 9
0
Software Development

第一次學Web Service的經驗談系列 第 9

Day09主題:認識Controller

  • 分享至 

  • xImage
  •  

Controller翻譯為「控制器」,為一個類別,且可包含許多方法(Method),這方法會被稱為一個Action或Action方法;透過這些Action,Controller可接受客戶端傳送來的要求與決定回應的View。
其負責使用者的互動邏輯,也就是應用程式收發 request/response的核心;而在管理的功能層叫作「事件層」。

  1. 首先來自路由的request會先被送到 Controller。
  2. 再由Controller通知Model調度資料。
  3. 並且把資料傳遞給View來產生HTML樣板(template),並將呈現資料的 HTML 頁面回傳給用戶端。

在Day06(認識View)中有提到,要如何讓View呈現資料?
答案就是需要透過Controller來控制,範例如下:

using DemoModel.Models;	//載入Models來源

namespace DemoMVC.Controllers
{
	public class HomeController:Controller
    {
		DBManger _db = new DBManger();			//宣告DBManger類別為物件
		public ActionResult Index()
		{
			Todo SingleTodo = _db.GiveValue();	//取得Model內資料
			return View(SingleTodo);			//將資料送出到View呈現
        }
    }
}

其他說明:

  1. RouteConfig:
    • 系統的路由設定檔(/APP_Start/RouteConfig.cs)。
    • Action預設執行方式都是利用此檔範本進行(/{Controller}/{Action}/{id})。
  2. ActionResult:是用來回傳執行結果的抽象類別。
    • ContentResult:回傳純文字文件。
    • EmptyResult:回傳空的結果。
    • RedirectResult:回傳會重新導向連結,使用路徑(~/Home/Index)的方式。
    • RedirectToRouteResult:回傳會重新導向連結,使用RedirecToAction和RedirecToRoute的方法。
    • ViewResult:回傳一個檢視(View)結果。
    • PatialViewResult:回傳一個部份檢視(PartialView)結果。
    • HttpUnauthorizedResult:回傳一個未經授權的錯誤(HTTP Error 401)。
    • HttpNotFoundResult:回傳一個找不到資源的狀態(HTTP Error 404)。
    • JsonResult:回傳一個JSON結果。
    • JavaScriptResult:回傳指令碼執行。
    • FilePathResult:回傳一個檔案內容。
    • FileContentResult:回傳一個檔案內容,透過二進位資料的方式。
    • FileStreamResult:回傳一個檔案內容,透過Stream的方式。
    • ActionResult:是Controller Action執行後的回傳結果類型,回傳可使用直接或間接繼承至ActionResult的類別。

好的,今天就先到這兒,明天再來繼續吧!

參考來源:
MVC架構是什麼?認識 Model-View-Controller 軟體設計模式

ASP.NET MVC — Controller


上一篇
Day08主題:認識View(2)
下一篇
Day10主題:認識資料傳遞(1)
系列文
第一次學Web Service的經驗談31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言