真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

ASP.NETMVC視圖(四)

ASP.NET MVC視圖(四)

創(chuàng)新互聯(lián)是一家專業(yè)提供汶上企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站設(shè)計(jì)制作、網(wǎng)站建設(shè)、H5技術(shù)、小程序制作等業(yè)務(wù)。10年已為汶上眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進(jìn)行中。

前言

上篇對(duì)于利用IoC框架對(duì)視圖的實(shí)現(xiàn)進(jìn)行依賴注入,最后還簡單的介紹一下自定義的視圖輔助器是怎么定義和使用的,對(duì)于Razor語法的細(xì)節(jié)和輔助器的使用下篇會(huì)說講到,本篇來講解一下視圖中的分段概念、和分部視圖的使用。

ASP.NETMVC視圖

自定義視圖引擎

Razor視圖引擎執(zhí)行過程

Razor視圖的依賴注入、自定義視圖輔助器

分段、分部視圖的使用

Razor語法、視圖輔助器

 

分段、分部視圖的使用

分段的使用

在ASP.NET MVC框架的Razor引擎中有著分段的概念,分段什么意思呢?分段的意思就是把視圖分成幾個(gè)自定義的分段,并且交由布局來控制分段的顯示。說是這么說,我們還是來看一看代碼的定義,首先是使用了分段的視圖代碼的定義,示例代碼1-1.

代碼1-1

@{
    ViewBag.Title = "ViewPartCase";
}
 

ViewPartCase

  @section PartOne {

這是使用分段的示例:分段一

}   @section PartTwo {

這是使用分段的示例:分段二

}   @section PartThree {

這是使用分段的示例:分段三

}

在代碼1-1中,使用@section標(biāo)間來創(chuàng)建分段,而后面緊跟著的就是自定義分段的名稱,這個(gè)時(shí)候布局的代碼如示例代碼1-2.

代碼1-2




    @ViewBag.Title
    
    

 

    @RenderBody()

 

這個(gè)時(shí)候的運(yùn)行結(jié)果如圖1。

圖1

ASP.NET MVC 視圖(四)

很明顯的看到圖1中所提示的錯(cuò)誤信息,在布局中并未定義PartOne、PartTow、PartThree。

這樣我們只能修改代碼1-2,修改布局中的定義,修改后的示例代碼1-3.

代碼1-3




    @ViewBag.Title
    
    

 
@RenderSection("PartOne")
@RenderSection("PartThree")
 

    @RenderBody()

@RenderSection("PartTwo")

在代碼1-3中@RenderSection標(biāo)簽用于顯示指定的分段,參數(shù)為自定義的分段名稱,這里大家要清楚一個(gè)概念,就是布局的定義是來引導(dǎo)視圖分段的定義,只不過在本篇幅是為了讓大家清楚的理解所以顛倒了順序,實(shí)際運(yùn)用中應(yīng)該是先定義好布局中所要使用的分段,以及指示的分段名稱,然后在視圖的定義中如果要使用當(dāng)前的布局則會(huì)根據(jù)當(dāng)前布局中的指定的分段名稱來定義內(nèi)容。看下以上代碼運(yùn)行結(jié)果如圖2.

圖2

ASP.NET MVC 視圖(四)

比如說現(xiàn)在我是先定義好的代碼1-3,然后要我定義我要呈現(xiàn)的頁面也就是我們的視圖,像代碼1-1那樣定義就是正常的應(yīng)用順序,那我現(xiàn)在修改代碼1-1,因?yàn)槲也幌胛业囊晥D中使用分段,示例代碼1-4

代碼1-4

@{
    ViewBag.Title = "ViewPartCase";
}
 

ViewPartCase

正如大家所看到的,代碼1-4也就是我修改后的視圖,就是顯示一個(gè)標(biāo)題,不想有其他的東西,再次運(yùn)行結(jié)果如圖2.

圖3

ASP.NET MVC 視圖(四)

圖3中明確的指示出了視圖中并未定義名為PartOne的分段,所以才會(huì)導(dǎo)致這樣的錯(cuò)誤,就算定義了PartOne,到了PartThree還要定義,不然接著報(bào)錯(cuò),這就是強(qiáng)制約束了,這樣多不人道主義阿對(duì)吧。

面對(duì)這樣的情況,我們有兩種方式來處理這種情況,

第一種,使用IsSectionDefinde()方法,方法參數(shù)即為分段名稱,以此判斷視圖中是否定義了此名稱的分段,如果定義了則會(huì)返回true,否則返回false(下面代碼會(huì)給出示例)。

第二種,使用@RenderSection()方法的重載版本,講第二個(gè)參數(shù)設(shè)置為false,如果視圖中包含了方法參數(shù)所指定的分段則會(huì)顯示,沒有則不會(huì)報(bào)出異常。

現(xiàn)在我們來看一下,修改布局代碼1-3中的代碼以此演示上面說到的兩種情況,示例代碼1-5.

代碼1-5




    @ViewBag.Title
    
    

@if (IsSectionDefined("PartOne"))
{
    @RenderSection("PartOne")
}
@RenderSection("PartThree",false)

    @RenderBody()

@RenderSection("PartTwo",false)

這個(gè)時(shí)候我們?cè)賮砜匆幌陆Y(jié)果圖4,,

圖4

ASP.NET MVC 視圖(四)

 

分部視圖的使用

對(duì)于分部視圖的使用其實(shí)也就是跟視圖一樣的,但是分布視圖跟視圖的區(qū)別在于分部視圖是禁用布局的,也就是說上面小節(jié)所說的分段在分部視圖中使用是毫無意義的,下面我們就來看一下分部視圖的定義

圖5

ASP.NET MVC 視圖(四)

圖5中并沒有創(chuàng)建強(qiáng)類型的分部視圖,這樣做的意義不大,在點(diǎn)擊“添加”按鈕后,所呈現(xiàn)的代碼頁面是個(gè)空的頁面什么都沒有,這里主要是給大家看一下分部視圖在編譯后類型所呈現(xiàn)的樣子也就是跟普通的視圖沒什么區(qū)別,示例代碼1-6.

代碼1-6

   

 public class _Page_Views_iocdemo_CustomPartialView_cshtml: System.Web.Mvc.WebViewPage {
        
#line hidden
 
        
        public_Page_Views_iocdemo_CustomPartialView_cshtml() {
        }
        
        protectedASP.global_asax ApplicationInstance {
            get{
                return((ASP.global_asax)(Context.ApplicationInstance));
            }
        }
        
        public override voidExecute() {
WriteLiteral("

PartialView

");             }     }

代碼1-6所呈現(xiàn)的就如同在ASP.NET MVC 視圖(二)中最后所示的示例那般,核心的地方是不會(huì)變的,我們還是來刪除掉這個(gè)分部視圖,重新添加一個(gè)同樣命名的強(qiáng)類型視圖,或者直接使用@model標(biāo)簽來引用一個(gè)類型作為視圖的Model類型,示例代碼1-7.

代碼1-7

@model MvcApplication.Models.CustomerInfo
 

@Model.ID

@Model.Name

我們?cè)倏匆幌聦?duì)于分部視圖使用的視圖的代碼定義,示例代碼1-8

代碼1-8

@model IEnumerable
@{
    ViewBag.Title = "ViewPartCase";
}

    ViewPartCase

@foreach (varmodel in Model) {     @Html.Partial("CustomPartialView",model) }

最后的呈現(xiàn)的界面如圖6.

圖6

ASP.NET MVC 視圖(四)


當(dāng)前名稱:ASP.NETMVC視圖(四)
本文路徑:http://weahome.cn/article/jpjsoj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部