cshtml中引用css_ASP.NET CoreMVC 中的控制器
Controller in ASP.NET Core MVC
在本節中,我們將討論 Controller 是什么以及它在 ASP.NET Core MVC 中的作用。
Fiddler
需要大家提前裝一個工具,https://www.telerik.com/fiddler
Fiddler 是一個 http 協議調試代理工具,它能夠記錄并檢查所有你的電腦和互聯網之間的 http 通訊,設置斷點,查看所有的“進出”Fiddler 的數據(指 cookie,html,js,css 等文件)。 Fiddler 要比其他的網絡調試器要更加簡單,因為它不僅僅暴露 http 通訊還提供了一個用戶友好的格式。
我們會通過他來演示,如何抓包獲取請求。
Controller
- MVC 中的控制器是一個類,它繼承自Microsoft.AspNetCore.Mvc.Controller
- 控制器類名稱后綴為**“Controller”**。例如 HomeController,StudentController。
- 當來自瀏覽器的請求到達我們的應用程序時,作為 MVC 中的控制器,它會處理傳入的 http 請求并響應用戶操作。
- Controller 類包含一組公共方法。Controller 類中的這些公共方法稱為操作方法( action methods)。正是這些控制器的操作方法處理傳入的 http 請求。
- 假設用戶在瀏覽器地址欄中鍵入了以下 URL 并按 ENTER 鍵http://localhost:12345/home/details
- URL"/home/details”會映射到 HomeController 中的“Details”公共操作方法。此映射是由我們應用程序中的路由規則定義完成。
- 我們將在即將發布的視頻中詳細討論 ASP.NET Core MVC 中的路由。
- 請求到達控制器動作方法。作為處理該請求的一部分,控制器創建模型-Model。
- 控制器通過依賴的服務,來查詢模型數據,。
- 例如,我們要查詢學生的數據,就需要通過 HomeController 依賴的IStudentRepository服務。
- IStudentRepository服務使用構造函數注入 HomeController。這稱為依賴注入。
- 我們在之前的ASP.NET Core 教程視頻中討論了**[依賴注入]**
- 請注意,我們將注入的依賴項分配給readonly字段。這是一個很好的做法,因為它可以防止在方法中意外地為其分配另一個值。
- 當控制器擁有所需的模型數據,比如我們正在提供服務或 RESTful API,它就可以簡單地返回該模型數據。
Controller 返回 JSON 數據
以下示例返回 JSON 數據。請注意,Details()方法的返回類型設置為 JsonResult,因為我們顯式返回 JSON 數據。在這種情況下,Details()方法始終返回 JSON 數據。它不接受內容協商并忽略Accept Header。
public class HomeController:Controller { private readonly IStudentRepository _studentRepository; public HomeController(IStudentRepository studentRepository) { _studentRepository = studentRepository; } public JsonResult Details() { Student model = _studentRepository.GetStudent(1); return Json(model); } }Controller 返回 ObjectResult
以下示例遵循內容協商查看請求頭中的** Accept Header**,如果它設置為application/xml,則返回 XML 數據。如果 Accept header 設置為application/json,則返回 JSON 數據。
public class HomeController:Controller { private readonly IStudentRepository _studentRepository; public HomeController(IStudentRepository studentRepository) { _studentRepository = studentRepository; } public ObjectResult Details() { Student model = _studentRepository.GetStudent(1); return new ObjectResult(model); } }請注意:為了能夠以 XML 格式返回數據,我們必須通過調用 Startup.cs 文件中的 ConfigureServices()方法中的 AddXmlSerializerFormatters()的方法。
public void ConfigureServices(IServiceCollection services){ services.AddMvc().AddXmlSerializerFormatters();}Controller 返回 View
以下示例返回 View。請注意,我們在返回視圖時將 ViewResult 設置為 Details 方法的返回類型。
public class HomeController:Controller { private readonly IStudentRepository _studentRepository; public HomeController(IStudentRepository studentRepository) { _studentRepository = studentRepository; } public ViewResult Details() { Student model = _studentRepository.GetStudent(1); return View(model); } }此時如果我們運行應用程序并導航到http://localhost:49119/home/details,我們會收到以下錯誤。這是因為:我們還沒有創建所需的 View 文件。我們將在下一個視頻中討論 MVC 中的視圖。
InvalidOperationException: The view 'Details' was not found. The following locations were searched: /Views/Home/Details.cshtml /Views/Shared/Details.cshtml /Pages/Shared/Details.cshtml
小結:
- 當來自瀏覽器的請求到達我們的應用程序時,作為 MVC 中的控制器,它會處理傳入的 http 請求并響應用戶操作。
- 控制器構建模型(Model)
- 如果我們正在構建 API, 則將模型數據返回給調用方
- 或者選擇 "View 視圖" 并將模型數據傳遞到視圖,然后視圖生成所需的 HTML 來顯示數據
歡迎添加個人微信號:Like若所思。
歡迎關注我的公眾號,不僅為你推薦最新的博文,還有更多驚喜和資源在等著你!一起學習共同進步!
總結
以上是生活随笔為你收集整理的cshtml中引用css_ASP.NET CoreMVC 中的控制器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 画蜘蛛_如何学习 R 绘图
- 下一篇: workbook加载文件路径_通过Wor