網站首頁 編程語言 正文
一、為什么要使用視圖
使用視圖以后有兩個優點:
1、保證頁面內容輸出和控制器代碼的分離。和Code Behind不同,CodeBehind實現的是物理分離,視圖可以實現邏輯上的分離。
2、更方便、更直觀的輸出頁面內容的方式。頁面上面的邏輯可以很方便的借助Razor語法和HTML混合的方式完成,不像以前的WebFrom需要后端把所有的HTML整合好在進行輸出,這樣后臺和前端想結合起來很困難。
二、視圖的尋址
1、視圖尋址方法1
當使用View方法返回視圖的時候,是怎么知道要執行哪個視圖頁面呢?通常的做法就是通過視圖的方法傳遞視圖的完整路徑,或者指定視圖的名稱,指定視圖路徑很好理解!如下面的代碼所示:
public ActionResult Index() { return View(); }
默認情況下,啟動的時候會打開Index視圖,將代碼修改如下:
public ActionResult Index() { // 指定視圖的路徑 return View("~/Views/Home/About.cshtml"); }
運行結果:
從運行結果中可以看出,如果指定了視圖的路徑,那么運行的時候打開的就會是指定路徑的視圖。
那么指定視圖名稱(默認代碼就是使用的指定視圖名稱的方法)的時候是如何知道視圖放在什么地方呢?難道要遍歷整個網站的路徑嗎?當然不會是這樣的,如下圖所示,它有一個尋址范圍的。
指定視圖名稱尋找視圖的步驟:
1、首先查找相應的Controller名稱對應的視圖文件夾,如果找不到,在查找Shared文件夾。
2、先查找cshtml文件。
3、這是一種約定的規則。
2、視圖尋址方法2
三、編寫視圖
前面已經接觸了視圖的編寫,從原理上講ASP.NET針對請求的處理最終體現在對目標Action方法的執行,并就處理的結果對請求予以響應,而ActionResult為我們提供了一種響應請求的快捷方式。ASP.NET MVC定義了一系列原生的ActionResult類型,如:EmptyResult、ContentResult等,它們或者幫助我們將指定的內容按照相應的媒體類型響應給客戶端,或者回復一個指定狀態碼的響應,又或者是實現客戶端的重定向。
ViewResult是重要也是最為常用的ActionResult,我們可以利用它將指定的View呈現在客戶端的瀏覽器上。針對ViewResult的View呈現最終是利用View引擎來實現的。View引擎中的View實現了IView接口,對應著某個View文件,而核心組件ViewEngine實現針對View的獲取、激活、呈現以及最終的釋放。
View文件最終編譯生成的WebViewPage
我們在定義View的時侯可以通過只讀屬性Model、ViewData、ViewBag和TempData得到在Controller中設置的狀態數據,也可以通過調用SetViewData設置ViewData,ViewContext表示View當前上下文。如下圖所示:
四、HTML輔助方法
下圖中列出了一些常見的HTML輔助方法:
原文鏈接:https://www.cnblogs.com/dotnet261010/p/8898568.html
相關推薦
- 2022-05-11 如何在 CSS 中設置組件在瀏覽器屏幕水平垂直居中
- 2022-05-06 Docker?刪除及清理鏡像的方法_docker
- 2022-08-10 詳細聊一聊algorithm中的排序算法_C 語言
- 2022-04-08 Python編程-封裝,繼承與多態_python
- 2022-08-20 swift?framework使用OC?代碼兩種方式示例_Swift
- 2022-03-14 跨域:Response to preflight request doesn t pass acce
- 2024-03-03 layui彈窗編輯表單清空
- 2022-06-11 FreeRTOS進階之系統延時完全解析_操作系統
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支