中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
ASP.NET MVC3快速入門——第三節(jié)、添加一個視圖
3.1 添加一個視圖
在本節(jié)中我們修改HelloWorldController類,以便使用視圖來向客戶端展示HTML格式的相應(yīng)結(jié)果。
我們使用ASP.NET MVC3中新增的Razor視圖引擎來創(chuàng)建視圖。Razor視圖模板文件的后綴名為.cshtml,它提供了一種簡潔的方式來創(chuàng)建HTML輸出流。Razor視圖大大減少了在書寫視圖模板文件時所需要輸入的字符,提供了一個最快捷,最簡便的編碼方式。
這里,我們在HelloWorldController類的Index方法中添加使用一個視圖。在修改前的Index方法中返回一個字符串,我們修改這個方法來使它返回一個視圖,代碼如下所示。
public ActionResult Index()
{
return View();
}
這段代碼表示Index方法使用一個視圖模板來在瀏覽器中生成HTML格式的頁面文件。
接著,讓我們來添加一個Index方法所使用的視圖模板。在Index方法中點擊鼠標(biāo)右鍵,然后點擊“添加視圖”,將會彈出一個“添加視圖”對話框。

圖 3-1 添加視圖

圖 3-2 添加視圖對話框
在該對話框中,不做任何修改,直接點擊添加按鈕,觀察解決方案資源管理器中,在MvcMovie項目下的Views文件夾下創(chuàng)建了一個HelloWorld文件夾,并且在該文件夾中創(chuàng)建了一個Index.cshtml文件,同時該文件呈打開狀態(tài),如圖3-3所示。

圖 3-3 視圖模板文件被創(chuàng)建并呈打開狀態(tài)
讓我們在該文件中追加一些文字,代碼如代碼清單3-1所示。
代碼清單3-1 Index.cshtml視圖模板文件
@{
ViewBag.Title="首頁";
}
<h2>首頁</h2>
<p>這是我的第一個視圖模板</p>
運行應(yīng)用程序,輸入地址"http://localhost:xxxx/HelloWordl"。由于在Index方法中并沒有做任何事情,只是簡單地一行代碼——“return View()”,該行代碼表示我們使用一個視圖模板文件來在瀏覽器中展示響應(yīng)結(jié)果。因為我們并沒有顯示指定使用哪個視圖模板文件,所以使用了默認的Views文件夾下的HelloWorld文件夾下的Index.cshtml視圖模板文件。該視圖模板文件中只有簡單的兩行文字,在瀏覽器中的顯示結(jié)果如圖3-4所示。

圖 3-4 在瀏覽器中顯示視圖
看上去還不錯,但是請注意,該網(wǎng)頁的標(biāo)題為“首頁”,但是網(wǎng)頁中的大標(biāo)題文字卻為“我的MVC應(yīng)用程序”,需要修改一下。


3.2 修改視圖,修改應(yīng)用程序的頁面布局
首先,讓我們修改頁面大標(biāo)題中的“我的MVC應(yīng)用程序”文字。這段文字是所有頁面中的公共大標(biāo)題,在這個應(yīng)用程序中,雖然所有頁面中都顯示了這個共同的大標(biāo)題,但只有一處地方對其進行了設(shè)置。打開解決方案資源管理器中Views文件夾下的Shared文件夾下的_Layout.cshtml文件。該文件被稱為布局頁面,位于公有文件夾Shared下,被所有其他網(wǎng)頁所公用。

圖 3-5 公有布局頁面
布局模板頁允許你統(tǒng)一在一個地方指定整個Web應(yīng)用程序或Web網(wǎng)站的所有HTML頁面的布局方法。請注意文件底部的“@ReaderBody()”代碼行。@RenderBody()是一個占位符,代表了所有你創(chuàng)建出來的實際應(yīng)用的視圖頁面,在這里統(tǒng)一指定。將布局模板文件中的“我的MVC應(yīng)用程序”修改為“我的MVCMovie應(yīng)用程序”。代碼如下所示。
<div id="title">
<h1>我的MVCMovie應(yīng)用程序</h1>
</div>
運行應(yīng)用程序,注意網(wǎng)頁中的大標(biāo)題被修改為“我的MVCMovie應(yīng)用程序”。點擊“關(guān)于”鏈接,你可以看見“關(guān)于”頁面中的大標(biāo)題也被修改為“我的MVCMovie應(yīng)用程序”。由此可以看出一旦修改了布局頁面中的某處地方,該修改將會被應(yīng)用到所有頁面中。

圖 3-6 在布局頁面中修改了網(wǎng)頁中顯示的大標(biāo)題
完整的_Layout.cshtml文件中的代碼如代碼清單3-2所示。
代碼清單3-2 _Layout.cshtml文件中的完整代碼
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>@ViewBag.Title</title>
<link href="@Url.Content("/Content/Site.css")" rel="stylesheet" type="text/css" />
<script src="@Url.Content("/Scripts/jquery-1.4.4.min.js")" type="text/javascript"></script>
</head>
<body>
<div class="page">
<div id="header">
<div id="title">
<h1>我的MVCMovie應(yīng)用程序</h1>
</div>
<div id="logindisplay">
@Html.Partial("LogOnPartial")
</div>
<div id="menucontainer">
<ul id="menu">
<li>@Html.ActionLink("主頁","Index","Home")</li>
<li>@Html.ActionLink("關(guān)于","About","Home")</li>
</ul>
</div>
</div>
<div id="main">
@RenderBody()
<div id="footer"></div>
</div>
</div>
</body>
</html>


現(xiàn)在,讓我們修改Index視圖頁面的標(biāo)題。
打開Views文件夾下的HelloWorld文件夾下的Index.cshtml文件。這里我們修改兩處地方:
首先,修改瀏覽器中的標(biāo)題,然后修改<h2>標(biāo)簽中的小標(biāo)題文字。修改后代碼如代碼清單3-3所示。
代碼清單3-3修改后的Index.cshtml視圖模板文件
@{
ViewBag.Title="電影清單";
}
<h2>我的電影清單</h2>
<p>這是我的第一個視圖模板</p>


ViewBag對象的Title屬性代表了顯示該頁面時的瀏覽器中的標(biāo)題文字。讓我們回頭看一下布局模板文件,在該文件的<head>區(qū)段中的<title>標(biāo)簽中使用了這個值來作為瀏覽器中的網(wǎng)頁標(biāo)題。同時,通過這種方法,你可以很容易地在你的視圖模板文件與布局模板文件之間進行參數(shù)的傳遞。
運行應(yīng)用程序,在地址欄中輸入“http://localhost:xxxx/HelloWordl”,注意瀏覽器中的網(wǎng)頁標(biāo)題,頁面中的小標(biāo)題文字都變味修改后的標(biāo)題文字(如果沒有發(fā)生變化的話,則可能你的網(wǎng)頁被緩存住了,可以按Ctrl+F5鍵來在重新刷新頁面時取消緩存)。
同時也請注意_Layout.cshtml文件中的占位符中的內(nèi)容被替換城了Index.cshtml視圖模板中的內(nèi)容,所以瀏覽器中展示的是一個單一的HTML文件。瀏覽器中的運行結(jié)果如圖3-7所示。

圖 3-7 修改了標(biāo)題后的Index視圖模板文件
此處,我們的數(shù)據(jù)(“這是我的第一個視圖模板”文字)是被直接書寫在文件中的,也就是說我們使用到了MVC應(yīng)用程序的“V”(視圖View)與“C"(控制器Controller)。接下來,我們講解一下如何創(chuàng)建一個數(shù)據(jù)庫并從該數(shù)據(jù)中獲取模型數(shù)據(jù)。
3.3 將控制器中的數(shù)據(jù)傳遞給視圖
在我們使用數(shù)據(jù)庫并介紹模型之前,首先我們介紹一下如何將控制器中的信息傳遞給視圖。瀏覽器接收到一個URL請求后,將會調(diào)用控制器類來進行響應(yīng)。你可以在控制器類中進行對接收到的頁面參數(shù)進行處理的代碼,你可以在控制器類中書寫從數(shù)據(jù)庫中獲取數(shù)據(jù)的代碼,你也可以在控制器類中書寫代碼來決定返回給客戶端什么格式的響應(yīng)文件。控制器可以利用視圖模板文件來生成HTML格式的響應(yīng)文件并顯示在瀏覽器中。
控制器列負責(zé)提供視圖模板文件在生成HTML格式的響應(yīng)文件時所需要的任何數(shù)據(jù)或?qū)ο?。一個視圖模板文件不應(yīng)該執(zhí)行任何業(yè)務(wù)邏輯,也不應(yīng)該直接和數(shù)據(jù)庫進行交互。它只能和控制器類進行交互,獲取控制器類所提供給它的數(shù)據(jù),這樣可以使你的代碼更加清晰,容易維護。
現(xiàn)在在我們的應(yīng)用程序中,HelloWorldController控制器類中的Welcome方法帶有兩個參數(shù)-name與numTimes,Welcome方法直接向瀏覽器輸出這個兩個參數(shù)的參數(shù)值。這里,我們修改該方法使其不再直接輸出數(shù)據(jù),而是使用一個視圖模板。該視圖模板將生成一個動態(tài)的響應(yīng)流,這意味著我們需要將數(shù)據(jù)從控制器類傳遞給視圖以便利用該數(shù)據(jù)來生成該響應(yīng)流。我們在該控制器類中將視圖模板所需要的數(shù)據(jù)送入一個ViewBag對象中,該對象可以被視圖模板直接接收。
打開HelloWorldController.cs文件,修改Welcome方法,在該方法中為ViewBag對象添加一個Message屬性與NumTimes屬性,并且將屬性值分別設(shè)定為經(jīng)過處理后的name參數(shù)值與numTimes參數(shù)值。ViewBag對象是一個動態(tài)對象,你可以為它添加任何屬性并賦上屬性值。在未賦值之前該屬性是不生效的,直到你賦值為止。修改后的HelloWorldController.cs文件中的代碼如代碼清單3-4所示。
代碼清單3-4修改后的HelloWorldController.cs文件
using System.Web;
using System.Web.Mvc;
namespace MvcMovie.Controllers
{
public class HelloWorldController:Controller
{
//GET:/HelloWorld/
public ActionResult Index()
{
return View();
}
//GET:/HelloWorld/Welcome/
public ActionResult Welcome(string name,int numTimes=1)
{
ViewBag.Message="Hello"+name;
ViewBag.NumTimes=numTimes;
return View();
}
}
}
現(xiàn)在ViewBag對象中已經(jīng)包含了數(shù)據(jù),它將自動傳遞給視圖。
接下來,我們需要創(chuàng)建一個Welcome視圖模板。在“調(diào)試”菜單中,點擊“生成MvcMovie”將應(yīng)用程序進行編譯,如圖3-8所示。

圖 3-8 編譯應(yīng)用程序
接下來,在Welcome方法中點擊鼠標(biāo)右鍵,然后點擊“添加視圖”,彈出對話框如圖3-9所示。

圖 3-9 為Welcome方法添加視圖
在該對話框中不做任何修改,直接點擊添加按鈕,View文件夾下的HelloWorld文件夾中自動被創(chuàng)建一個Welcome.cshtml文件,打開該文件,在<h2>元素下添加代碼,讓瀏覽器顯示URL地址中傳入的name參數(shù)中設(shè)定的文字,顯示次數(shù)等于URL地址中傳入的numTimes參數(shù)中設(shè)定的次數(shù)。修改后的Welcome.cshtml文件中的代碼如代碼清單3-5所示。
代碼清單3-5修改后的Welcome.cshtml文件
@{
ViewBag.Title="Welcome";
}
<h2>Welcome</h2>
<ul>
@for(int i=0;i<ViewBag.NumTimes;i++)
{
<li>@ViewBag.Message</li>
}
</ul>
運行應(yīng)用程序,并且在地址欄中輸入
“http://localhost:xx/HelloWorld/Welcome?name=Scott&numTimes=4”,該地址欄中的頁面參數(shù)將會自動傳遞給控制器??刂破鲗堰@些參數(shù)值放入ViewBag對象中并且傳遞給視圖。視圖在在瀏覽器中顯示這些數(shù)據(jù)。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
ASP.NET MVC4 入門之添加一個View
ASP.NET MVC3細嚼慢咽---(2)模板頁
ASP.NET MVC4 IN ACTION學(xué)習(xí)筆記
mvc5入門,經(jīng)典教程。
ASP.NET MVC3:通過Razor實現(xiàn)布局
[ASP.NET MVC 小牛之路]03
更多類似文章 >>
生活服務(wù)
熱點新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服