ASP.NET MVC視圖尋址
一、為什么要使用視圖
使用視圖以后有兩個(gè)優(yōu)點(diǎn):
1、保證頁(yè)面內(nèi)容輸出和控制器代碼的分離。和Code Behind不同,CodeBehind實(shí)現(xiàn)的是物理分離,視圖可以實(shí)現(xiàn)邏輯上的分離。
2、更方便、更直觀的輸出頁(yè)面內(nèi)容的方式。頁(yè)面上面的邏輯可以很方便的借助Razor語(yǔ)法和HTML混合的方式完成,不像以前的WebFrom需要后端把所有的HTML整合好在進(jìn)行輸出,這樣后臺(tái)和前端想結(jié)合起來(lái)很困難。
二、視圖的尋址
1、視圖尋址方法1
當(dāng)使用View方法返回視圖的時(shí)候,是怎么知道要執(zhí)行哪個(gè)視圖頁(yè)面呢?通常的做法就是通過(guò)視圖的方法傳遞視圖的完整路徑,或者指定視圖的名稱,指定視圖路徑很好理解!如下面的代碼所示:
public ActionResult Index()
{
return View();
}默認(rèn)情況下,啟動(dòng)的時(shí)候會(huì)打開(kāi)Index視圖,將代碼修改如下:
public ActionResult Index()
{
// 指定視圖的路徑
return View("~/Views/Home/About.cshtml");
}運(yùn)行結(jié)果:

從運(yùn)行結(jié)果中可以看出,如果指定了視圖的路徑,那么運(yùn)行的時(shí)候打開(kāi)的就會(huì)是指定路徑的視圖。
那么指定視圖名稱(默認(rèn)代碼就是使用的指定視圖名稱的方法)的時(shí)候是如何知道視圖放在什么地方呢?難道要遍歷整個(gè)網(wǎng)站的路徑嗎?當(dāng)然不會(huì)是這樣的,如下圖所示,它有一個(gè)尋址范圍的。
指定視圖名稱尋找視圖的步驟:
1、首先查找相應(yīng)的Controller名稱對(duì)應(yīng)的視圖文件夾,如果找不到,在查找Shared文件夾。
2、先查找cshtml文件。
3、這是一種約定的規(guī)則。
2、視圖尋址方法2

三、編寫視圖
前面已經(jīng)接觸了視圖的編寫,從原理上講ASP.NET針對(duì)請(qǐng)求的處理最終體現(xiàn)在對(duì)目標(biāo)Action方法的執(zhí)行,并就處理的結(jié)果對(duì)請(qǐng)求予以響應(yīng),而ActionResult為我們提供了一種響應(yīng)請(qǐng)求的快捷方式。ASP.NET MVC定義了一系列原生的ActionResult類型,如:EmptyResult、ContentResult等,它們或者幫助我們將指定的內(nèi)容按照相應(yīng)的媒體類型響應(yīng)給客戶端,或者回復(fù)一個(gè)指定狀態(tài)碼的響應(yīng),又或者是實(shí)現(xiàn)客戶端的重定向。
ViewResult是重要也是最為常用的ActionResult,我們可以利用它將指定的View呈現(xiàn)在客戶端的瀏覽器上。針對(duì)ViewResult的View呈現(xiàn)最終是利用View引擎來(lái)實(shí)現(xiàn)的。View引擎中的View實(shí)現(xiàn)了IView接口,對(duì)應(yīng)著某個(gè)View文件,而核心組件ViewEngine實(shí)現(xiàn)針對(duì)View的獲取、激活、呈現(xiàn)以及最終的釋放。
View文件最終編譯生成的WebViewPage<TModel>是System.Web.Mvc.WebViewPage的子類,而后者繼承自WebPageBase。我們?cè)诙xView的時(shí)侯使用的三個(gè)幫助對(duì)象(HtmlHelper、UrlHelper和AjaxHelper)所對(duì)應(yīng)的屬性就定義在這里,他們通過(guò)InitHelpers方法進(jìn)行初始化。
我們?cè)诙xView的時(shí)侯可以通過(guò)只讀屬性Model、ViewData、ViewBag和TempData得到在Controller中設(shè)置的狀態(tài)數(shù)據(jù),也可以通過(guò)調(diào)用SetViewData設(shè)置ViewData,ViewContext表示View當(dāng)前上下文。如下圖所示:

四、HTML輔助方法
下圖中列出了一些常見(jiàn)的HTML輔助方法:


到此這篇關(guān)于ASP.NET MVC視圖尋址的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
關(guān)于.NET動(dòng)態(tài)代理的介紹和應(yīng)用簡(jiǎn)介
關(guān)于.NET動(dòng)態(tài)代理的介紹和應(yīng)用簡(jiǎn)介...2006-09-09
visual studio 2019正式版安裝簡(jiǎn)單教程
這篇文章主要為大家詳細(xì)介紹了visual studio 2019正式版安裝簡(jiǎn)單教程,文中安裝步驟介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-06-06
解協(xié)議時(shí)有符號(hào)和無(wú)符號(hào)整數(shù)型處理
這篇文章主要介紹了解協(xié)議時(shí)有符號(hào)和無(wú)符號(hào)整數(shù)型處理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01
asp.net Excel轉(zhuǎn)換為SQL Server的方法
辦公軟件Excel是一種常用的電子表格軟件,在編程項(xiàng)目中有需要將Excel轉(zhuǎn)換為SQL Server數(shù)據(jù)庫(kù)的需求,本文對(duì)此進(jìn)行一些介紹并給出設(shè)計(jì)代碼。2009-06-06
.Net加密神器Eazfuscator.NET?2023.2?最新版使用教程
這篇文章主要介紹了.Net加密神器Eazfuscator.NET 2023.2最新版使用教程,本文通過(guò)圖文實(shí)例代碼相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-06-06
ASP.NET預(yù)備知識(shí)學(xué)習(xí)筆記
這篇文章主要介紹了ASP.NET預(yù)備知識(shí),內(nèi)容很全面,幾乎涵蓋了asp.net預(yù)備知識(shí)點(diǎn),感興趣的小朋友可以看一看。2015-09-09
ASP.NET:一段比較經(jīng)典的多線程學(xué)習(xí)代碼
ASP.NET:一段比較經(jīng)典的多線程學(xué)習(xí)代碼...2006-09-09

