體驗(yàn)ASP.NET MVC 3中的Razor特性
1 閑話ASP.NET MVC 3 beta
不知道不覺(jué)MVC3更新了好幾次了。。。因?yàn)橐恢痹谂猄ilverlight的開發(fā)沒(méi)有時(shí)間關(guān)注ASP.NET MVC.之前出preview 的時(shí)候就看了園子里的一些文章。
但是總覺(jué)得"不咋地",依賴注入早就有一套了,全局?jǐn)r截器也就那么回事。。好像都沒(méi)有對(duì)開發(fā)效率有太大的提升。。。(一己之見(jiàn).目前正在學(xué)習(xí)MVC3BEAT的DI)。
除了RAZOR...
好吧。 現(xiàn)在開始動(dòng)手吧!
2開工
2.1目錄
在_ViewStart.cshtml中指定
StartPage.Layout 會(huì)在程序啟動(dòng)時(shí),預(yù)先加載這個(gè)頁(yè)面。
- @{
- Layout = "~/Views/Shared/_Layout.cshtml";
- }
2.2實(shí)現(xiàn)框架頁(yè)
_Layout.cshtml中
- <!DOCTYPE html>
- <html>
- <head>
- <title>@View.Title</title>
- <link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
- </head>
- <body>
- @*模板頁(yè)*@
- <div>
- <fieldset>
- <legend>Main</legend>
- @RenderBody()
- </fieldset>
- <fieldset>
- <legend>底部footer</legend>
- @RenderSection("footer" );
- </fieldset>
- </div>
- </body>
- </html>
@RenderBody() 呈現(xiàn)主體。
@RenderSection("footer" ); 呈現(xiàn)部分:如底部的版權(quán)。
在Index.cshtml中
- @section footer{
- copyrght@@facingwaller
- }
2.3顯示 view里的變量和顯示control里的變量
顯示頁(yè)面里定義的
顯示控制器
control里的定義:
view中的顯示
2.4其他一些常用寫法
VIEW中
- <fieldset>
- 頁(yè)面上的變量 use view variable: @@variable=@variable
- <br />
- 來(lái)自控制器的 use Controller variable:@View.variable
- <br />
- 循環(huán)嵌套HTML Loops and Nested HTML Sample
- @foreach (var p in words) {
- <big>@p ..</big>
- }
- <br />
- 使用if else
- @if (IsTrue) {
- <b>@@IsTrue is @IsTrue</b>
- } else {
- <b>@@IsTrue is @IsTrue</b>
- }
- <br />
- 多行代碼
- @{
- var number = 1;
- var num2 = 2;
- }
- Multi-Token Statements 變量和字符串拼湊的語(yǔ)句 @(number + "number is " + number);
- <br />
- HTML Encoding
- <br />
- @*以下沒(méi)弄懂-望指教*@
- @if (true) {
- <text>
- hi it's razor<br />
- follow me ! I'm facingwaller
- </text>
- <br />
- <span>hi it's razor<br />
- follow me ! I'm facingwaller </span>
- } else {
- }
- <br />
- Declarative HTML Helpers聲明幫助方法
- @helper WordInText(string text) {
- foreach (var p in text) {
- <li>@p </li>
- }
- }
- 調(diào)用 @WordInText("ender")
- </fieldset>
最終效果
3激動(dòng)人心的RAZOR
嘗鮮RAZOR這個(gè)頁(yè)面引擎,感覺(jué)挺不錯(cuò)。
1 用@ 代替 該死的<% %>顯然<,%,>都是非常難敲到的鍵位。
2 單行的@+變量的方式更加簡(jiǎn)潔。
3 提供了靜態(tài)大量的helper方法。
4 其Chart和grid的輔助方法讓圖表和表格更加容易生成比之前的contrib開源的那個(gè)表格生產(chǎn)類庫(kù)更加來(lái)得人性化。
WebImage幫助創(chuàng)建圖像,也包括基本的圖像操作方法。這些以后我會(huì)繼續(xù)體驗(yàn)和比較然后和大家分享。。。
4 歡迎討論其他的頁(yè)面引擎
還有話要說(shuō)。目前我還沒(méi)有看過(guò)RAZOR的源碼也沒(méi)有體驗(yàn)過(guò)其他的(除了webpages)頁(yè)面引擎。
說(shuō)的不好的地方請(qǐng)大家?guī)椭赋觯矚g迎大家說(shuō)說(shuō)其他的頁(yè)面引擎,特別是說(shuō)說(shuō)易用性,設(shè)計(jì)思想,開發(fā)效率和性能,讓偶開開眼界。
相關(guān)源代碼下載請(qǐng)點(diǎn)這里
原文鏈接:http://www.cnblogs.com/facingwaller/archive/2010/12/04/first_time_to_use_razor_in_mvc3.html
【編輯推薦】