此教程向你演示如何在你的mvc檢視裡建立自定義html helper。利用 html helpers, 可以減少乏味的輸入html標籤。
在教程的第一部分,我描述了asp.net mvc框架已有的html helper。然後,我描述了建立自定義html helper的兩個方法:我會解釋如何通過建立靜態方法和擴充套件方法來建立html helper。
html helper 只是乙個返回字串的方法。這個字串可以表示你想要的任何內容。例如,你可以使用html helper來呈現標準的html標籤如 html和
標籤。你還可以用html helper來呈現更多複雜內容比如乙個標籤頁或者乙個資料庫資料的html**。
asp.net mvc 框架包括了以下標準的html helpers (此列表並不完整):
例如, 考慮**1的表單。此表單由兩個標準html helper呈現(見圖1)。此表單用html.beginform()
和html.textbox()
helper 方法來呈現乙個簡單的html表單。
**1 –views/home/index.aspx
%>
1
html.beginform() helper 方法用來建立 html
新建html helper的最簡單的方法是建立乙個返回字串的靜態方法。例如,你決定新建乙個html helper來呈現 html標籤。你可以使用**3中的類來呈現
。
**3 –helpers/labelhelper.cs
using system;**3中的類沒什麼特別的。", target, text);}}
}
label()
方法僅僅返回乙個字串。
**4中修改後的index檢視用labelhelper
呈現 html標籤。注意檢視包括了乙個
命名空間。
**4 –views/home/index2.aspx
%>
如果你想建立跟asp.net mvc框架中的標準html helper那樣的html helper,那麼你需要建立擴充套件方法。擴充套件方法讓你可以在現有類中新增新方法。建立html helper方法時,為htmlhelper類新增新方法,這個類由檢視的html屬性表示。
**5 中的類新增了乙個名為label()擴充套件方法到htmlhelper。
此類你要注意很多地方。首先,注意這個類是個靜態類。你必須定義擴充套件方法到靜態類。
其次, 注意label()
方法的第乙個引數前面有個關鍵字this
。擴充套件方法的第乙個引數指示了擴充套件方法所擴充套件的類。
**5 –helpers/labelextensions.cs
using system;建立了擴充套件方法,並成功生成你的應用程式後,擴充套件方法就可以像其他類中的所有方法那樣顯示在visual studio智慧型提示中。(見圖 2)。唯一不同的是擴充套件方法旁邊的圖示比較特殊(乙個向下的箭頭)。using system.web.mvc;
", target, text);}}
}
**6中修改後的index檢視用 html.label() 擴充套件方法呈現它所有的標籤。
**6 –views/home/index3.aspx
%>
在這篇教程裡,你學到了兩個建立自定義html helper的方法。首先,你學到了如何通過建立乙個返回字串的靜態方法來建立乙個自定義label()
html helper。 然後,你學到了如何通過在htmlhelper 類中建立乙個擴充套件方法類建立乙個自定義label()
html helper。
在這篇教程裡,我專注於建立乙個極其簡單的html helper方法。注意 html helper 可以隨你所想地完成。你可以建立呈現諸如樹形列表,選單或者資料庫記錄的**等豐富內容的html helper。
七 建立自定義的HTML Helper 轉
作者翻譯自官方的教程 這篇文章我們來討論一下如何建立我們自己的html helper 以便在mvc檢視中使用。使用html helper可以減少書寫那些煩人的html標記。在這篇文章的第一部分,我們來談一下asp.net mvc框架中現有的html helper,然後我們再來研究兩種建立自定義htm...
建立自定義控制項
在前一篇文章中 中,我將乙個公共視窗控制項進行了之類劃分,目的是為了修飾其行為或者說是擴充套件其功能。有時候,你只能將公共視窗控制項擴充套件到這樣的底部。我遇到的乙個例子是乙個比較普遍的話題即需要乙個格網控制項並且編輯tabular資料。我對clistctrl進行了之類劃分,並擴充套件使其能夠進行子...
建立自定義物件
你並不侷限於前幾節所討論的jscript的內建物件,你可以自定義包含有你自己的方法和屬性的物件來擴充jscript,這是jscript的乙個強大的特性。例如,你可以建立乙個名為webuser的物件,它包含參觀你網點的使用者的資訊,這個物件可以包含諸如使用者名稱 密碼和註冊狀態之類的屬性,將所有這些屬...