體驗(yàn)ASP.NET MVC 3中的Razor特性
1 閑話ASP.NET MVC 3 beta
不知道不覺MVC3更新了好幾次了。。。因?yàn)橐恢痹谂猄ilverlight的開發(fā)沒有時間關(guān)注ASP.NET MVC.之前出preview 的時候就看了園子里的一些文章。
但是總覺得"不咋地",依賴注入早就有一套了,全局?jǐn)r截器也就那么回事。。好像都沒有對開發(fā)效率有太大的提升。。。(一己之見.目前正在學(xué)習(xí)MVC3BEAT的DI)。
除了RAZOR...
好吧。 現(xiàn)在開始動手吧!
2開工
2.1目錄
在_ViewStart.cshtml中指定
StartPage.Layout 會在程序啟動時,預(yù)先加載這個頁面。
- @{
- Layout = "~/Views/Shared/_Layout.cshtml";
- }
2.2實(shí)現(xiàn)框架頁
_Layout.cshtml中
- <!DOCTYPE html>
- <html>
- <head>
- <title>@View.Title</title>
- <link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
- </head>
- <body>
- @*模板頁*@
- <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里的變量
顯示頁面里定義的
顯示控制器
control里的定義:
view中的顯示
2.4其他一些常用寫法
VIEW中
- <fieldset>
- 頁面上的變量 use view variable: @@variable=@variable
- <br />
- 來自控制器的 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 變量和字符串拼湊的語句 @(number + "number is " + number);
- <br />
- HTML Encoding
- <br />
- @*以下沒弄懂-望指教*@
- @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激動人心的RAZOR
嘗鮮RAZOR這個頁面引擎,感覺挺不錯。
1 用@ 代替 該死的<% %>顯然<,%,>都是非常難敲到的鍵位。
2 單行的@+變量的方式更加簡潔。
3 提供了靜態(tài)大量的helper方法。
4 其Chart和grid的輔助方法讓圖表和表格更加容易生成比之前的contrib開源的那個表格生產(chǎn)類庫更加來得人性化。
WebImage幫助創(chuàng)建圖像,也包括基本的圖像操作方法。這些以后我會繼續(xù)體驗(yàn)和比較然后和大家分享。。。
4 歡迎討論其他的頁面引擎
還有話要說。目前我還沒有看過RAZOR的源碼也沒有體驗(yàn)過其他的(除了webpages)頁面引擎。
說的不好的地方請大家?guī)椭赋?,也歡迎大家說說其他的頁面引擎,特別是說說易用性,設(shè)計(jì)思想,開發(fā)效率和性能,讓偶開開眼界。
相關(guān)源代碼下載請點(diǎn)這里
原文鏈接:http://www.cnblogs.com/facingwaller/archive/2010/12/04/first_time_to_use_razor_in_mvc3.html
【編輯推薦】