ASP.NET 動態資料概觀
更新: 2008 年 7 月
ASP.NET Dynamic Data 是一種架構,可讓您輕鬆地建立資料驅動型 ASP.NET Web 應用程式。它會在執行階段自動探索資料模型的中繼資料,並藉以推斷 UI 的行為。Scaffolding 架構可以提供正常運作的網站,讓您檢視及編輯資料。您就可以變更項目或建立覆寫預設行為的新項目,從而自訂 Scaffolding 架構。此外,現有的應用程式也可以輕鬆地將多個 Scaffolding 項目與 ASP.NET 網頁進行整合。
此主題包括下列章節:
簡介
功能
背景
類別參考
其他資訊
功能
您可以利用 ASP.NET Dynamic Data 建立新的資料導向網站,這類的網站只需要撰寫少量的程式碼,同時,還能夠充分利用動態資料架構功能提供的優點。您也可以指定將特定的動態資料功能加入到現有的網站。
動態資料提供下列功能:
可以視所讀取基礎資料庫結構描述執行 Web 應用程式的 Web Scaffolding。動態資料 Scaffolding 可以透過資料模型產生標準的 UI。
完整的資料存取操作 (建立、更新、移除、顯示)、關聯式運算和資料驗證。
自動支援外部索引鍵關聯性。動態資料會偵測資料表之間的關聯,然後建立方便使用者檢視關聯資料表中資料的 UI。如需詳細資訊,請參閱逐步解說:建立使用 Scaffolding 的新動態資料網站。
這項功能可以讓您自訂用於呈現顯示和編輯特定資料欄位的 UI。如需詳細資訊,請參閱 HOW TO:自訂 ASP.NET 動態資料預設欄位範本和 HOW TO:自訂資料模型中的資料欄位外觀和行為。
這項功能可以讓您自訂用於呈現顯示和編輯特定資料表中資料欄位的 UI。如需詳細資訊,請參閱 HOW TO:使用自訂頁面範本以自訂個別資料表的配置。
自訂資料欄位驗證的功能。這可以讓您在資料層保留商務邏輯,而不需要使用到展示層。如需詳細資訊,請參閱 HOW TO:自訂資料模型中的資料欄位驗證。
背景
動態資料極為特別的一點是,它能夠在執行階段透過基礎資料庫的結構描述,推測出資料欄位的外觀與行為。這種機制搭配可以使用預設頁面和欄範本以及多種可能的自訂項目後,能夠為提供您豐富多元的設計選擇,其中包含:
使用 Scaffolding 建立網站。
將動態資料加入至現有網站。
新增資料欄位驗證的商務邏輯。
自訂用於呈現顯示和編輯特定資料欄位或資料表的 UI。
資料模型
資料模型表示資料庫中的資訊,以及資料庫中的項目相互間的關聯性如何。
動態資料支援 LINQ-to-SQL 資料模型及 ADO.NET Entity Framework 資料模型。您可以在 Web 應用程式中加入多種資料模型的執行個體,但是動態資料中所使用的模型必須是同一種類別。
您可以在 Web 應用程式的 Global.asax 檔案中,註冊想要搭配動態資料使用的資料模型。資料模型對動態資料註冊後,資料模型可以執行資料欄位的自動驗證,同時可以讓您在資料層層級控制資料的外觀與行為。
Scaffolding
Scaffolding 這一種機制會根據資料模型動態顯示網頁,藉此增強現有的 ASP.NET 網頁架構。Scaffolding 下列功能:
利用極少的程式碼或是根本不使用程式碼,建立資料導向的 Web 應用程式。
加速開發時程。
根據資料庫結構描述的內建資料驗證。
建立外部索引鍵或布林值欄位的自動資料選取。
網頁範本
動態資料 Scaffolding 使用「網頁範本」(Page Template) 提供預設的資料表檢視。網頁範本屬於 ASP.NET 網頁,這種網頁已經設定為要顯示動態資料提供之資料表的資料。動態資料包含支援多種類型資料檢視的網頁範本,例如列出資料表 ([清單] 檢視)、顯示主從式資料表 ([詳細資料] 檢視)、編輯資料 ([編輯] 檢視) 等。根據預設,動態資料已設定為只使用 [清單] 檢視網頁範本。您可以變更預設網頁範本或者變更動態資料,以根據不同用途使用不同的網頁範本。如需詳細資訊,請參閱 ASP.NET 動態資料基礎結構。
欄位範本
動態資料利用欄位範本,呈現用於顯示和編輯個別資料欄位的 UI。如此,它可以透過資料欄位型別判斷得知適當的欄位範本。動態資料包含多個用於顯示及編輯資料欄位的不同欄位範本。
例如,動態資料在處理 DateTime 資料欄位時,會使用下列範本:
DateTime.ascx:這個範本以文字 (字串) 顯示 DateTime 資料型別,並將其呈現為 Literal 控制項。
DateTime_Edit.ascx:這個範本會呈現 TextBox 控制項。如果資料庫中的欄位不能為 null,或是如果資料模型已經自訂為需要輸入項目,那麼這個控制項也會呈現 RequiredFieldValidator 控制項。DateTime_Edit.ascx 欄位範本提供能夠處理資料模型所擲回任一例外狀況的 DynamicValidator 控制項。它也支援 Regex 類別。
建立動態資料 Web 專案時,Visual Studio 會將專案加入到 DynamicData\FieldTemplates 資料夾中。這個資料夾包含預設欄位範本。
您可以自訂內建欄位範本或是建立新範本,以指定要如何呈現個別的資料欄位。例如,您可以建立用於呈現顯示並編輯電話號碼或電子郵件地址之 UI 的欄位範本。另一個範例是,您可以建立呈現用於透過其他方法 (例如滑桿) 的 UI 欄位範本,讓使用者指定數值資料。
增強現有資料控制項
動態資料能夠強化現有資料控制項,以透過下列方法加入動態行為。
DetailsView 及 GridView 控制項可以使用預先定義的動態資料範本,讓您不需要在每一個網頁上為資料控制項重新建立相同的標記及程式碼,藉此動態顯示資料。您可以自訂這些範本,變更要使用哪些控制項以及要如何呈現顯示與編輯資料欄位的 UI。這可以讓您在一個位置進行變更,並讓變更影響整個 Web 應用程式中資料控制項的外觀及行為。由於這個動作不涉及特定的資料表,因此網頁範本可以用於資料庫的任一資料表上。如需詳細資訊,請參閱 HOW TO:使用 DynamicField 將動態行為加入至資料繫結控制項。
FormView 與 ListView 控制項利用範本中的 DynamicControl 控制項並且指定要在資料列顯示的欄位,可以實作與 DetailsView 和 GridView 控制項類似的行為。接著,動態資料會根據您所指定的範本,自動建立這些控制項的 UI。DynamicControl 控制項不會自動呈現任何欄位的 UI,因此您必須將這些控制項繫結到任一特定資料欄位。如需詳細資訊,請參閱 HOW TO:在樣板化資料繫結控制項中使用 ASP.NET 動態資料。
動態資料會檢視 LINQ-to-SQL 或 Entity Framework 資料模型的中繼資料,然後根據中繼資料提供自動驗證。例如,如果資料庫中的資料行已標記為不可為 null,那麼該資料行的 RequiredFieldValidator 控制項便會自動呈現。您也可以套用自訂中繼資料,以進一步自訂要如何呈現與驗證資料欄位。如需詳細資訊,請參閱 HOW TO:自訂資料模型中的資料欄位驗證。
類別參考
下表列出包含 ASP.NET Dynamic Data 類別的命名空間。
命名空間 |
說明 |
---|---|
提供用於定義動態資料控制項之中繼資料的屬性類別。 |
|
包含提供 ASP.NET Dynamic Data 核心功能的類別。它也提供了自訂動態資料行為的擴充性功能。 |
其他資訊
建議您進一步探索下列各項:
了解 URL 路由。如需詳細資訊,請參閱 ASP.NET 路由。
了解 LINQ-to-SQL 物件關聯的對應概念。如需詳細資訊,請參閱 LINQ to SQL。
了解 ADO.NET Entity Framework。如需的詳細資訊,請參閱 ADO.NET Entity Framework。
回到頁首
請參閱
工作
逐步解說:建立使用 Scaffolding 的新動態資料網站
概念
ASP.NET 動態資料 Scaffolding 和頁面範本概觀
變更記錄
日期 |
記錄 |
原因 |
---|---|---|
2008 年 7 月 |
加入主題。 |
SP1 功能變更。 |