mvc helper 的用法和作用

2022-02-15 16:12:00 字數 3173 閱讀 6782

razor中的@helper語法讓您能夠輕鬆建立可重用的幫助器方法,此方法可以在您的檢視模板中封裝輸出功能。他們使**能更好地重用,也使**更具有可讀性。

字面意思就封裝一些我們需要常用到的方法等 方便不同的地方使用(這裡的地方是檢視模版)

還是看例子吧!

如圖:我們好多地方都引用到css還有js

也許你其他地方也需要載入這些js或者css 也許你會說在shared裡面新建乙個cshtml頁面 在其他頁面頭部直接加:

?@

這樣也可以,不過要是比如這種情況呢?(引用網上的)

裡面我們看到的就是if else 需求也和上面一樣你說怎麼辦呢?

還記得我開頭說的這句話吧

@helper語法讓您能夠輕鬆建立可重用的幫助器方法,此方法可以在您的檢視模板中封裝輸出功能。他們使**能更好地重用,也使**更具有可讀性。

?@usingsystem.web.mvc

@helper script(stringjsname,urlhelper url)

@helper css(stringcssname, urlhelper url)

其他cshtml頁面呼叫:

直接在head上:

@tsp.css("

addvehicle.css

",url)

@tsp.script("

xx.js

",url)

當然你也可以寫上你的邏輯**如圖:

和上面的呼叫方法一樣 !

asp.net mvc 3支援一項名為「razor」的新檢視引擎選項(除了繼續支援/加強現有的.aspx檢視引擎外)。當編寫乙個檢視模板時,razor將所需的字元和擊鍵數減少到最小,並保證乙個快速、通暢的編碼工作流。

與大部分模板的語法不同,在razor的幫助下,您不需要中斷**編寫,僅僅為了在html中標註伺服器端**塊的開始和結束。**分析器足夠聰明,它能夠從你的**裡推斷出是否為伺服器端**。這種更加簡潔、富有表現力的語法更加乾淨,輸入也更快速,有趣。

今天的博文涵蓋了razor的一項很多人都不知道的功能——利用@helper語法定義可重用的幫助器方法。

簡單的 @helper 方法應用場景

razor中的@helper語法讓您能夠輕鬆建立可重用的幫助器方法,此方法可以在您的檢視模板中封裝輸出功能。他們使**能更好地重用,也使**更具有可讀性。讓我們看乙個超級簡單的應用場景,它展示了@helper語法是怎樣被使用的。

在我們定義@helper方法之前的**

讓我們看乙個簡單的產品列表應用場景。在此場景中,我們列出產品明細並輸出產品的**或是單詞「免費!」——如果這個產品不花費任何成本的話:

以上**非常直截了當,而且razor的語法使得在html裡能簡單地整合伺服器端c#**。

然而,乙個有點混亂的地方是**的if/else邏輯。我們可能在站點的其他位置輸出**(或者在同一頁面上),而複製以上邏輯很容易出錯且難以維護。類似的應用場景是使用@helper語法提取和重構成為幫助器方法的首選考慮。

使用@helper語法重構以上樣例

讓我們提取**輸出邏輯,並將其封裝在乙個我們將命名為「displayprice」的幫助器方法內。我們可以通過重寫以下**樣例來實現此操作:

我們已經使用上述@helper語法來定義名為「displayprice」的可重用幫助器方法。就像標準c#/vb方法一樣,它可以包含任意數量的引數(您也可以定義引數為空或可選引數)。不過,與標準c#/vb方法不同的是,@helper方法可以同時包含內容和**並支援其中的完整razor語法——這使得定義和封裝呈現/格式化幫助器方法變得非常簡單。

您可以像呼叫乙個標準的c#或vb方法一樣,呼叫@helper方法:

當呼叫該方法時,visual studio會提供智慧型感知**:

在多檢視模式中重用@helper

在上面的例項中,我們在相同的檢視模板中將@helper方法定義為呼叫它的**。或者,我們可以將@helper方法定義在檢視模板外,並保證其在專案的所有檢視模板中可重複使用。

一旦我們的幫助器定義在應用程式級別,我們就可以在應用程式的任何檢視模板中使用它們。

當像如下方法呼叫應用程式級別幫助器時,visual studio將會提供智慧型感知**:

總結

razor的@helper語法提供了一種簡便的方法來將呈現功能封裝到幫助方法中去。您可以在單個檢視模板或整個專案的所有檢視模板中重用它。

您可以使用此功能來編寫更加乾淨、更易維護的**。

空間的作用和用法

對於乙個使用者系統預設的會建立。temp undotabs user system這幾個表空間。那請問這幾個表空間各有什麼 作用呢?當學了oracle的人都會說。temp表空間是放處理的臨時資料的,比如排序操作。undotabs表空間是資料恢復時用到。user表空間是存班實資料的。但是大家有誰能真正...

Const 的作用和用法

const型別定義 指明變數或物件的值是不能被更新,引入目的是為了取代預編譯指令 常量必須被初始化 cons的作用 1 可以定義const常量 例如 const int max 100 int array max 2 便於進行型別檢查 例如 void f const int i 編譯器就會知道i是乙...

c 「 」的作用和用法

在看別人程式的時候偶爾看到,總結了一下兩個用途 1.不常用,也不推介用的用法。關鍵字 可以作為識別符號來使用,說白了,就是講關鍵字變成非關鍵字。2.逐字字串字面量,以 開頭,後面是由引導包含的字串。使用引導號包含的字串的內容原樣輸出,而且他們能夠跨越兩行或更多行。因此,可以加入新行,製表符等,而不需...