原文
razor,很有意思的剃刀。相較與之前開發web的方式,razor真是輕鬆愜意。
下面說一下我使用razor的一些心得。
頁面中歸根結底是乙個輸出字串(html css js等混合的字串)的過程。現在流行的web開發方式,包括asp(.net), jsp, php 等等,在頁面上,都是在輸出html字串的過程中,嵌入伺服器**。或者理解成相反的過程, 不管如何理解, 頁面中總是需要在輸出字串和其它服務端**兩者中間不斷的進行切換。
傳統的切換是通過之類的成對標記標識的。 razor引擎不再使用之麼複雜的標記, 而是使用乙個@來標識這種切換。
我們暫時將直接輸出html css js等字串的模式稱為html模式,將執行伺服器**的模式稱為c#模式,請看下圖:
從html模式進入c#的模式,總是以@開始, 後面沒有跟{}時,razor會自動判斷何時返回html模式。沒有{}的c#模式一般都比較短暫,碰到html標記就結束了。
而有{}時,大括號之中會進入以c#為預設模式的環境中。比如:
這段**在瀏覽器中的結果:
上面的**,注釋中說明了兩種模式切換的情況,同時展示了是否進行html編碼輸出字串的功能。
razor的精髓便是預設模式與模式的切換。 在輸出有困難的時候,可以通過{}和一些系統提供的或自定義的c#方法來明確的控制這種切換。
除了這一切換原理,razor還有些小的特性,比如
1)@if必須有{}
2)在js或css中使用@與稍有困難
3)標記中的href屬性,使用」~/」,razor會自動將其轉換成絕對路徑
4) 很多情況下,初學者會錯誤的多輸出;符號。比如將 @html.raw(「…」) 寫成 @html.raw(「…」); 後面的;是多餘的,會錯誤的呈現在頁面上。
還有一些其它的,在使用中慢慢體會吧。
像htmlhelper(即@html)、urlhelper(@url)等其中 有很多常用的方法。
比如url.content(「~/controller/action…」)會轉換成絕對路徑。
雖然看上去有點複雜,但是稍加熟悉後感覺真是比原來的輕鬆多了。
所以,我們愛razor.
輕鬆學MVC4 0 1 建立MVC專案
原文 前提條件 安裝好vs2012 1 建立新專案,選mvc裡的internet專案。它會自動的幫助我們做很多任務作,是最輕鬆的mvc開始之門。2 設定資料庫。資料庫和一些基礎的表,會在後面自動建立。這裡我們設定一下資料庫的名稱等資訊。修改web.config裡的defaultconnection連...
輕鬆學MVC4 0 6 MVC的執行流程
mvc在底層和傳統的asp.net是一致的,在底層之上,相關流程如下 2 routeconfig.registerroutes 方法裡,給出的預設規則為 a.在有特別需要的時候,到這裡來修改規則。b.未指明controller預設為homecontoller,未指定action預設為index,也就...
MVC中Controller與View之間資料互傳
一 controller向view傳遞資料 1 使用viewdata傳遞資料 在controller中定義如下 viewdata message viewdata hello viewdata 在view中讀取controller中定義的viewdata資料,如下 html.encode viewd...