首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

ASP.NET MVC 自訂 ViewHelper 實戰:打造優雅的 HtmlFieldSet 元件(完結篇)

     編輯:關於ASP.NET

承接前文,我們已完成 HtmlFieldSet 核心類別的建構。為了讓 HtmlHelper 擴充方法能順暢使用這個類別,還需實作一個關鍵的進入點方法:NewHtmlFieldSet。

擴充方法實作

public static IViewObject NewHtmlFieldSet(
    this HtmlHelper htmlHelper, 
    string name, 
    string title, 
    object attributes)
{
    IViewObject viewObject = new HtmlFieldSet(
        new ViewRequestContext(htmlHelper), 
        name, 
        title, 
        attributes);
    viewObject.StartView();
    return viewObject;
}

此方法的實作邏輯與前幾篇介紹的其他 Helper 一致:接收參數、建構 View 物件、呼叫 StartView() 初始化,最後回傳實作 IViewObject 介面的實例。回傳的物件將在 View 的 using 區塊中被自動管理生命週期。

View 中的使用範例

<% using (Html.NewHtmlFieldset("FieldsetName", "My Fieldset", null)) { %>
    <li>
        <label for="FirstName">FirstName</label>
        <span id="FirstName"><%= Html.Encode(Model.FirstName) %></span>
    </li>
<% } %>

產生的 HTML 輸出

<fieldset name="FieldsetName">
    <legend>My Fieldset</legend>
    <ol>
        <li>
            <label for="FirstName">FirstName</label>
            <span id="FirstName">Sayed</span>
        </li>
    </ol>
</fieldset>

EndView 方法會自動輸出結尾標籤(</li>、</ol>、</fieldset>),完美符合預期。透過這套 View Helper 機制,我們不僅封裝了重複的 HTML 結構,更讓 View 程式碼獲得了更好的可讀性與可維護性。這系列文章完整展示了從零建構自訂 ViewHelper 的完整流程,期望能為您的 ASP.NET MVC 專案帶來啟發。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved