體驗ASP.NET MVC 3中的Razor特性

作者: 撞破南墻  來源: 博客園  發布時間: 2010-12-12 20:53  閱讀: 2973 次  推薦: 1   原文鏈接   [收藏]  
摘要:ASP.NET MVC 3已經進行到RC版本了,不過下文的體驗還是對大家有所幫助的,畢竟RC與Beta版本的差距不是很大。

  1 閑話ASP.NET MVC 3 beta

  不知道不覺MVC3更新了好幾次了。。。因為一直在弄Silverlight的開發沒有時間關注ASP.NET MVC.之前出preview 的時候就看了園子里的一些文章。

  但是總覺得"不咋地",依賴注入早就有一套了,全局攔截器也就那么回事。。好像都沒有對開發效率有太大的提升。。。(一己之見.目前正在學習MVC3BEAT的DI)。

  除了RAZOR... 

  好吧。 現在開始動手吧!

  2開工 

  2.1目錄 

 

   在_ViewStart.cshtml中指定

  StartPage.Layout 會在程序啟動時,預先加載這個頁面。

@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}

   2.2實現框架頁

   _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() 呈現主體。

  @RenderSection("footer" ); 呈現部分:如底部的版權。

  在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 />
    循環嵌套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>
        }
}
    調用 @WordInText("ender")
   

</fieldset>

  最終效果

 

   3激動人心的RAZOR

        嘗鮮RAZOR這個頁面引擎,感覺挺不錯。

  1 用@ 代替 該死的<% %>顯然<,%,>都是非常難敲到的鍵位。

  2 單行的@+變量的方式更加簡潔。

  3 提供了靜態大量的helper方法。 

  4 其Chart和grid的輔助方法讓圖表和表格更加容易生成比之前的contrib開源的那個表格生產類庫更加來得人性化。

  WebImage幫助創建圖像,也包括基本的圖像操作方法。這些以后我會繼續體驗和比較然后和大家分享。。。  

  4 歡迎討論其他的頁面引擎

      還有話要說。目前我還沒有看過RAZOR的源碼也沒有體驗過其他的(除了webpages)頁面引擎。

說的不好的地方請大家幫指出,也歡迎大家說說其他的頁面引擎,特別是說說易用性,設計思想,開發效率和性能,讓偶開開眼界。

1
0
 
標簽:ASP.NET MVC Razor
 
 

文章列表

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()