ASP.NETMVC之Razor語(yǔ)法的示例分析-創(chuàng)新互聯(lián)

這篇文章主要介紹ASP.NET MVC之Razor語(yǔ)法的示例分析,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

創(chuàng)新互聯(lián)網(wǎng)站建設(shè)提供從項(xiàng)目策劃、軟件開發(fā),軟件安全維護(hù)、網(wǎng)站優(yōu)化(SEO)、網(wǎng)站分析、效果評(píng)估等整套的建站服務(wù),主營(yíng)業(yè)務(wù)為成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè),成都app軟件開發(fā)公司以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。創(chuàng)新互聯(lián)深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!

1. 表達(dá)式

表達(dá)式必須跟在“@”符號(hào)之后,

2.代碼塊

代碼塊必須位于“@{}”中,并且每行代碼必須以“;”結(jié)尾。代碼塊中定義的變量可能會(huì)被同一個(gè)域中的其他塊使用。比如,定義在視圖頂部的變量可以被同一視圖中的代碼塊和代碼段訪問。

3. 布局

Razor通過layouts保持網(wǎng)頁(yè)外觀布局的一致性。布局模板包含基本的標(biāo)簽,并可以指定渲染視圖內(nèi)容的位置。比如

基本布局文件(_Layout.cshtml)

<!DOCTYPE Html>
<html lang=”en”>
 <head>
 <mete charset=”utf-8”/>
 <title>@View.Title</title>
 </head>
 <body>
 <div class=”header”>
  @RenderSection(“Header”);
 </div>
 @RenderBody()
 <div class=”footer”>
  @RenderSection(“Footer”);
 </div>
 </body>
</html>

布局頁(yè)面定義完成后,其他視圖頁(yè)面就可以引用該布局文件,比如

@{Layout=”~/_Layout.cshtml”;}
@section Header {
 <h2>Page Header Content</h2>
}
@section Footer {
 Copyright @DateTime.Now.Year
}
<div class=”main”>
 Page Main Content
</div>

使用Razor布局和內(nèi)容視圖將頁(yè)面組合在一起,展示了一個(gè)完整的頁(yè)面,其中的每一塊定義了頁(yè)面的不同部分。

4.部分視圖

使用布局通過重用部分HTML代碼做到網(wǎng)站外觀的一致性,但是有一些情況,布局則無(wú)法實(shí)現(xiàn),比如,網(wǎng)頁(yè)上的一部分信息需要多次重復(fù)出現(xiàn)(格式一致,顯示內(nèi)容不一致),例如,購(gòu)物網(wǎng)站頁(yè)面上的交易列表,只顯示交易名稱、當(dāng)前價(jià)格和摘要信息。

ASP.NET MVC通過部分視圖的技術(shù)實(shí)現(xiàn)了這個(gè)需求。

首先,先定義部分視圖,并保存為單獨(dú)的視圖文件(例如,~/Views/Shared/Acution.cshtml)。

@model Auction
<div class=”auction”>
 <a href=”@Model.Url”><img src=”@Model.ImageUrl”</a>
 <h5><a href=”@Model.Url”>@Model.Title</a></h5>
 <p>Current Price :@Model.CurrentPrice</p>
</div>

然后,在需要使用該部分視圖的位置,調(diào)用ASP.NET MVC自帶的HTML方法調(diào)用它,比如:

@model IEnumerable<Auction>

<h3>Search Result</h3>
@foreach(var auction in Model){
 @Html.Partial(“Auction”,auction);
}

其中,Html.Partial()方法的第一個(gè)參數(shù)“Auction”是部分視圖名稱,并需要包含擴(kuò)展名。第二個(gè)參數(shù)則是傳遞到部分視圖的數(shù)據(jù)模型。第二個(gè)參數(shù)不是必須的,如果不傳遞,系統(tǒng)會(huì)默認(rèn)將調(diào)用該部分視圖的數(shù)據(jù)模型進(jìn)行傳遞,比如,本例中的IEnumerable<Auction>。

由此可見,使用部分視圖能夠降低網(wǎng)頁(yè)中的代碼重復(fù)和編碼復(fù)雜性,增強(qiáng)可讀性。

5. 顯示數(shù)據(jù)

MVC架構(gòu)分為三層,模型、視圖和控制器。三層之間彼此分離且協(xié)同工作,其中,就需要控制器擔(dān)當(dāng)“協(xié)調(diào)”的角色,視圖將請(qǐng)求交給控制器,控制器對(duì)模型進(jìn)行操作,并將操作結(jié)果反饋給視圖,視圖對(duì)模型的數(shù)據(jù)進(jìn)行呈現(xiàn)。

控制器和視圖之間的數(shù)據(jù)傳遞方式,ASP.NET MVC 提供了以下幾種實(shí)現(xiàn)方式:

1)  ViewData

ViewData實(shí)現(xiàn)方式,它的實(shí)現(xiàn)類似于Dictionary的操作,使得數(shù)據(jù)傳遞變得非常簡(jiǎn)單。

在控制器方法中使用類似于ViewData[“DataKey”]=dataValue進(jìn)行賦值,在視圖文件中,使用var dataValue=ViewData[“DataKey”]獲取數(shù)據(jù)。

2) ViewBag

ViewBag的使用類型與C#中的dynamic類型,可以直接操作其屬性,比如,

控制器方法:ViewBag.DataProperty=dataValue;

視圖文件:var dataValue=ViewBag.DataProperty;

3) Model屬性

Model屬性屬于強(qiáng)類型,并且是動(dòng)態(tài)類型,可以在視圖上輸入”@Model”就可以直接訪問。

6. HTMLHelper和URLHelper

Web請(qǐng)求的目標(biāo)就是向用戶發(fā)送HTML代碼,在Razor語(yǔ)法中,ASP.NET MVC有兩個(gè)重要的幫助類來生成對(duì)應(yīng)的HTML代碼,分別是HTMLHelper和URLHelper。HTMLHelper類用來生成HTML標(biāo)記代碼,URLHelper用來生成URL地址鏈接。

<img src='@Url.Content(“~/Content/images/header.jps”)'/>
@Html.ActionLink(“Home”,”Index”,”Home”)

渲染得到的HMTL代碼為:

<img src='/vdir/Content/images/header.jpg'/>
<a href=”/vdir/Home/Index”>HomePage</a>

以上是“ASP.NET MVC之Razor語(yǔ)法的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

網(wǎng)頁(yè)標(biāo)題:ASP.NETMVC之Razor語(yǔ)法的示例分析-創(chuàng)新互聯(lián)
網(wǎng)站URL:http://muchs.cn/article12/dpsigc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)、Google靜態(tài)網(wǎng)站、定制網(wǎng)站建站公司、關(guān)鍵詞優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)