天天看點

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

1 閑話ASP.NET MVC 3 beta

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

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

除了RAZOR...

好吧。 現在開始動手吧!

2開工

2.1目錄

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

在_ViewStart.cshtml中指定

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

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

2.2實作架構頁

_Layout.cshtml中

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>@View.Title</title>
  5. <link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
  6. </head>
  7. <body>
  8. @*模闆頁*@
  9. <div>
  10. <fieldset>
  11. <legend>Main</legend>
  12. @RenderBody()
  13. </fieldset>
  14. <fieldset>
  15. <legend>底部footer</legend>
  16. @RenderSection("footer" );
  17. </fieldset>
  18. </div>
  19. </body>
  20. </html>

@RenderBody() 呈現主體。

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

在Index.cshtml中

  1. @section footer{
  2. [email protected]@facingwaller
  3. }

2.3顯示 view裡的變量和顯示control裡的變量

顯示頁面裡定義的

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

顯示控制器

control裡的定義: 

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

view中的顯示

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

2.4其他一些常用寫法

VIEW中

  1. <fieldset>
  2. 頁面上的變量 use view variable: @@variable[email protected]
  3. <br />
  4. 來自控制器的 use Controller variable:@View.variable
  5. <br />
  6. 循環嵌套HTML Loops and Nested HTML Sample
  7. @foreach (var p in words) {
  8. <big>@p ..</big>
  9. }
  10. <br />
  11. 使用if else
  12. @if (IsTrue) {
  13. <b>@@IsTrue is @IsTrue</b>
  14. } else {
  15. <b>@@IsTrue is @IsTrue</b>
  16. }
  17. <br />
  18. 多行代碼
  19. @{
  20. var number = 1;
  21. var num2 = 2;
  22. }
  23. Multi-Token Statements 變量和字元串拼湊的語句 @(number + "number is " + number);
  24. <br />
  25. HTML Encoding
  26. <br />
  27. @*以下沒弄懂-望指教*@
  28. @if (true) {
  29. <text>
  30. hi it's razor<br />
  31. follow me ! I'm facingwaller
  32. </text>
  33. <br />
  34. <span>hi it's razor<br />
  35. follow me ! I'm facingwaller </span>
  36. } else {
  37. }
  38. <br />
  39. Declarative HTML Helpers聲明幫助方法
  40. @helper WordInText(string text) {
  41. foreach (var p in text) {
  42. <li>@p </li>
  43. }
  44. }
  45. 調用 @WordInText("ender")
  46. </fieldset>

最終效果

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

3激動人心的RAZOR

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

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

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

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

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

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

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

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

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

相關源代碼下載下傳請點這裡

原文連結:http://www.cnblogs.com/facingwaller/archive/2010/12/04/first_time_to_use_razor_in_mvc3.html