国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

ASP.NET MVC中的視圖生成實例分析

2024-07-10 12:48:10
字體:
來源:轉載
供稿:網友

本文實例分析了ASP.NET MVC中的視圖生成過程。。具體如下:

在 ASP.NET MVC 中,我們將前端的呈現劃分為三個獨立的部分來實現,Controller 用來控制用戶的操作,View 用來控制呈現的內容,Model 用來表示處理的數據。

從控制器到視圖

通常,在 Controller 中,我們定義多個 Action ,每個 Action 的返回類型一般是 ActionResult,在 Action 處理的最后,我們返回對于視圖的調用。
代碼如下:public ActionResult Index()
{
    return this.View();
}
默認情況下,將會調用與 Action 同名的視圖,比如,在上面的 Action 中,將會使用名為 Index 的視圖。
 
如果我們傳遞了一個字符串參數,那么,這個字符串就回被視為視圖的名稱,例如,我們希望使用名為 IndexView 的視圖進行呈現,那么,可以如下完成。
代碼如下:public ActionResult Index()
{
    return this.View("IndexView");
}
布局與視圖

MVC 會直接去找我們的視圖嗎?不會!
 
從 Action 返回之后,首先,MVC 會在 Views 文件夾下查看是否存在一個名為 _ViewStart.cshtml 的特殊文件,如果存在的話,就回執行這個文件。
 
默認情況下,這個文件的內容如下所示:
代碼如下:@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}
也就是說,它設置了我們的默認布局使用那一個文件文件。
 
布局等價于我們在 WebForm 中所使用的母版頁。
 
如果沒有這個文件,默認沒有使用布局。
 
如果有了這個文件,而我們在頁面中不想使用這個布局怎么辦呢?很簡單,在頁面中設置 Layout = null 來覆蓋掉它。
代碼如下:@{
    Layout = null;
}
布局中的分區

在布局頁面中,默認就回存在一個特殊的指令 @RenderBody(),這是說,你在內容頁面中呈現的內容,將會在這里進行輸出。這就是在使用布局之后,你會發現你的視圖中已經沒有了 <html> 標記的原因。
代碼如下:<body>
    @RenderBody()
</body>
假如說,我們希望在布局中的多個位置進行輸出,比如,樣式表通常在 <head> 標記中,而現代的腳本則會出現在頁面的最后,頁面的內容當然出現在頁面的主體中了。這樣的話,我們在內容頁面的實際內容,將會需要在布局的不同部分進行呈現,而不是在同一個位置進行呈現了。
 
解決的辦法就是分區,實際上,類似于 WebForm 中的 ContentPlaceHolder ,定義一個命名的區域。
 
比如,下面我們定義了一個名為 scripts 的命名區域,第二個參數表示這個區域是可選的區域,在內容頁面中可以不用提供內容。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 治县。| 腾冲县| 紫阳县| 临西县| 古蔺县| 清徐县| 汉寿县| 柯坪县| 麟游县| 靖州| 浮梁县| 仪陇县| 眉山市| 漳浦县| 南丰县| 吉木萨尔县| 徐闻县| 正阳县| 龙游县| 榆林市| 武宣县| 鸡西市| 台湾省| 郧西县| 香格里拉县| 海口市| 马山县| 蓬安县| 临沭县| 乐至县| 贵德县| 景洪市| 社旗县| 松滋市| 阜城县| 凤翔县| 铜梁县| 明星| 宝山区| 衢州市| 治县。|