[Asp .Net MVC]使用Razor自定functions (與HtmlHelper 比較 ... | mvc共用元件
functions=>函數(在前端寫c#語法)=你原本在後端怎麼寫c#在前端就怎麼寫 上一篇我們分享了如何使用HtmlHelper來做一些運算產生HtmlTag 再次考量這個案例 考量下面多種寫法可知HtmlHelper=>讓我們用類似寫C#的方式動態組出HtmlTag=>輸出結果必定是Html元素例:div、input、button......functions=>就是寫在前端Razor的C#語法=>輸出結果較彈性 看起來好像HtmlHelper可以做的事情比較多畢竟透過Razor的幫助可以在編譯期自動幫我們檢查我們在組合Html元素是否有打錯字例如:Tag是否有相對應的結束標籤、css屬性是否打錯字等等...
functions => 函數 (在前端寫c#語法) = 你原本在後端怎麼寫c# 在前端就怎麼寫
上一篇我們分享了如何使用HtmlHelper來做一些運算產生Html Tag
再次考量這個案例
考量下面多種寫法
可知
HtmlHelper
=>讓我們用類似寫C#的方式動態組出Html Tag => 輸出結果必定是Html元素 例:div、input、button......
functions
=> 就是寫在前端Razor的C#語法 => 輸出結果較彈性
看起來好像HtmlHelper可以做的事情比較多
畢竟透過Razor的幫助 可以在編譯期自動幫我們檢查我們在組合Html元素是否有打錯字
例如: Tag是否有相對應的結束標籤、css屬性是否打錯字等等
但考量這個例子
假設算出BMI值的分母值 這個函式還會被其他函式呼叫、或是有其他HtmlHelper要拿來做不同Html標籤呈現時 (紅色、藍色、綠色......)
此時我們需要提出這段程式碼
但HtmlHelper本身並沒有傳回值 他其實就是一段Html語法
所以這時後便只有functions辦得到了
考量View裡的程式碼
//使用HtmlHelper => Html支援的都能使用 @MyHtmlHelper.GetBmiByHtmlHelper(item.HEIGHT, item.WEIGHT) //使用functions => 單純的後端c#函式,無頁面客製邏輯 @MyHtmlHelper.Get...