共用方式為


ASP.NET 動態資料概觀

更新: 2008 年 7 月

ASP.NET Dynamic Data 是一種架構,可讓您輕鬆地建立資料驅動型 ASP.NET Web 應用程式。它會在執行階段自動探索資料模型的中繼資料,並藉以推斷 UI 的行為。Scaffolding 架構可以提供正常運作的網站,讓您檢視及編輯資料。您就可以變更項目或建立覆寫預設行為的新項目,從而自訂 Scaffolding 架構。此外,現有的應用程式也可以輕鬆地將多個 Scaffolding 項目與 ASP.NET 網頁進行整合。

此主題包括下列章節:

  • 簡介

  • 功能

  • 背景

  • 類別參考

  • 其他資訊

功能

您可以利用 ASP.NET Dynamic Data 建立新的資料導向網站,這類的網站只需要撰寫少量的程式碼,同時,還能夠充分利用動態資料架構功能提供的優點。您也可以指定將特定的動態資料功能加入到現有的網站。

動態資料提供下列功能:

背景

動態資料極為特別的一點是,它能夠在執行階段透過基礎資料庫的結構描述,推測出資料欄位的外觀與行為。這種機制搭配可以使用預設頁面和欄範本以及多種可能的自訂項目後,能夠為提供您豐富多元的設計選擇,其中包含:

  • 使用 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 欄位範本,讓使用者指定數值資料。

增強現有資料控制項

動態資料能夠強化現有資料控制項,以透過下列方法加入動態行為。

  • DetailsViewGridView 控制項可以使用預先定義的動態資料範本,讓您不需要在每一個網頁上為資料控制項重新建立相同的標記及程式碼,藉此動態顯示資料。您可以自訂這些範本,變更要使用哪些控制項以及要如何呈現顯示與編輯資料欄位的 UI。這可以讓您在一個位置進行變更,並讓變更影響整個 Web 應用程式中資料控制項的外觀及行為。由於這個動作不涉及特定的資料表,因此網頁範本可以用於資料庫的任一資料表上。如需詳細資訊,請參閱 HOW TO:使用 DynamicField 將動態行為加入至資料繫結控制項

  • FormViewListView 控制項利用範本中的 DynamicControl 控制項並且指定要在資料列顯示的欄位,可以實作與 DetailsViewGridView 控制項類似的行為。接著,動態資料會根據您所指定的範本,自動建立這些控制項的 UI。DynamicControl 控制項不會自動呈現任何欄位的 UI,因此您必須將這些控制項繫結到任一特定資料欄位。如需詳細資訊,請參閱 HOW TO:在樣板化資料繫結控制項中使用 ASP.NET 動態資料

  • 動態資料會檢視 LINQ-to-SQL 或 Entity Framework 資料模型的中繼資料,然後根據中繼資料提供自動驗證。例如,如果資料庫中的資料行已標記為不可為 null,那麼該資料行的 RequiredFieldValidator 控制項便會自動呈現。您也可以套用自訂中繼資料,以進一步自訂要如何呈現與驗證資料欄位。如需詳細資訊,請參閱 HOW TO:自訂資料模型中的資料欄位驗證

類別參考

下表列出包含 ASP.NET Dynamic Data 類別的命名空間。

命名空間

說明

System.ComponentModel.DataAnnotations

提供用於定義動態資料控制項之中繼資料的屬性類別。

System.Web.DynamicData

包含提供 ASP.NET Dynamic Data 核心功能的類別。它也提供了自訂動態資料行為的擴充性功能。

其他資訊

建議您進一步探索下列各項:

  • 了解 URL 路由。如需詳細資訊,請參閱 ASP.NET 路由

  • 了解 LINQ-to-SQL 物件關聯的對應概念。如需詳細資訊,請參閱 LINQ to SQL

  • 了解 ADO.NET Entity Framework。如需的詳細資訊,請參閱 ADO.NET Entity Framework

回到頁首

請參閱

工作

逐步解說:建立使用 Scaffolding 的新動態資料網站

逐步解說:將動態資料加入至現有網站

概念

ASP.NET 動態資料基礎結構

ASP.NET 動態資料 Scaffolding 和頁面範本概觀

將動態行為加入至 ASP.NET 資料繫結控制項

ASP.NET 動態資料欄位範本概觀

ASP.NET 動態資料模型概觀

變更記錄

日期

記錄

原因

2008 年 7 月

加入主題。

SP1 功能變更。