有時候在View裡面會透過Controller Return View(model),
把資料顯示在View上面,但有些時候讀出來的資料會需要經過判斷而有不同的顯示
這時候有甚麼方式可以做?
1.直接寫在View上,用Razor判斷
@if(判斷式)
HTML語法顯示
else
HTML語法顯示
但有沒有更好的方法?
我覺得透過擴充 HTML HELPER 的方法會讓View看起來更乾淨
那該如何擴充HTML HELPER?
因為要擴充所以類別、方法一定要是公開(public)、靜態(static)的
這邊我舉個簡單的例子
public static HtmlString DisplayMessageStatusName(this HtmlHelper htmlHelper, string test)
{
string messageStatusName = "";
if (test == "0")
{
messageStatusName = "未核定";
}
else if (test == "1")
{
messageStatusName = "已核定";
}
return new MvcHtmlString($"<span>{messageStatusName}</span>");
}
這樣在 View 前端就可以在 HTML 裡面呼叫了
<td>@Html.DisplayMessageStatusName(Model.MessageStatus)</td>
而不用在View 裡面呈現一堆判斷式
我想這是在開發View上面一個滿不錯的選擇吧!