Razor 在WebApp 框架的運用

      前面有兩章介紹了WebApp框架《WebApp MVC,「不同」的輕量級互聯網應用程序開發框架》和《WebApp MVC 框架的開發細節概括》,其中視圖引擎是用的Nvelocity,最近發現Razor不錯,語法比較像C#,並且在VS IDE中有提示比較方便,更不錯的是在CodePlex上已有人把Razor從aspx mvc中剝離出來獨立的開源項目RazorEngine,立馬就研究了一下並加入到框架中。html

      RazorEngine開源網址:http://razorengine.codeplex.com/mvc

 

下面咱們看看在Webapp 框架中使用Razor視圖引擎的實例:app

1.簡單實例,hello worlod框架

 

 

2.Razor方法實例ide

 

使用關鍵字@helper 來建立方法aa,輸出字符串hello 這裏跟MVC中的Razor語法有點不同,要想不報錯得用@()把輸入內容包括起來,這地方開始不知道老報錯,最後調式源碼才發現必須這樣書寫。性能

 

3.判斷實例spa

 

 

4.循環實例3d

 

5.方法ToUrl和LoadJscode

 

 

 

 

6.包含外部文件htm

 

 

7.後臺TestController的代碼

 

 [AOP(typeof(HeadComponent), typeof(FooterComponent))]
        public void Razortest01()
        {
            List<string> data = new List<string>();
            data.Add("選項1");
            data.Add("選項2");
            data.Add("選項3");
            ViewData.Add("data", data);

            ViewData.Add("name", "kakake");
            ViewResult = ToView(@"Views\Test\test01.cshtml");
        }

 

public class HeadComponent : AbstractRazorComponent
    {
        public override string GetFilePath()
        {
            return "Views/Test/head.cshtml";
        }

        public override void LoadViewData()
        {
            ViewData.Add("head", "這是頁頭!");
        }
    }
 public class FooterComponent : AbstractRazorComponent
    {
        public override string GetFilePath()
        {
            return "Views/Test/footer.cshtml";
        }

        public override void LoadViewData()
        {
            ViewData.Add("footer", "這是頁腳!");
        }
    }

 

 

界面效果:

 

總結:使用Razor確實讓咱們的代碼看起來更加舒服,可是Razor在性能方面可能有點缺失。另外就是若是修改了cshtml文件須要退出服務從新編譯項目運行,否則執行可能會出錯

相關文章
相關標籤/搜索