Nguon: Microsoft Learn · .NET 8.0

Công cụ tạo mã ASP.NET Core (aspnet-codegenerator)

Nguồn: ASP.NET Core code generator tool (aspnet-codegenerator)

Lệnh dotnet aspnet-codegenerator chạy công cụ scaffolding (tạo khung mã) của ASP.NET Core. Việc chạy lệnh dotnet aspnet-codegenerator là bắt buộc khi scaffold (tạo khung) từ dòng lệnh hoặc khi sử dụng Visual Studio Code. Lệnh này không cần thiết khi dùng scaffolding với Visual Studio, vì Visual Studio đã bao gồm scaffolding engine (công cụ tạo khung) theo mặc định.

Cài đặt và cập nhật công cụ tạo mã

Cài đặt .NET SDK.

dotnet aspnet-codegenerator là một global tool (công cụ toàn cục) phải được cài đặt riêng. Lệnh sau cài đặt phiên bản ổn định mới nhất của công cụ tạo mã ASP.NET Core:

dotnetcli
dotnet tool install -g dotnet-aspnet-codegenerator

Lưu ý: Theo mặc định, kiến trúc của các file nhị phân .NET được cài đặt khớp với kiến trúc hệ điều hành đang chạy. Để chỉ định kiến trúc khác, xem cách sử dụng lệnh dotnet tool install với tùy chọn --arch.

Nếu công cụ đã được cài đặt, lệnh sau cập nhật công cụ lên phiên bản ổn định mới nhất:

dotnetcli
dotnet tool update -g dotnet-aspnet-codegenerator

Gỡ cài đặt công cụ tạo mã

Đôi khi cần gỡ cài đặt công cụ tạo mã ASP.NET Core để giải quyết sự cố. Ví dụ: nếu bạn đã cài đặt phiên bản preview, hãy gỡ cài đặt trước khi cài đặt phiên bản chính thức.

Các lệnh sau gỡ cài đặt công cụ tạo mã và cài đặt lại phiên bản ổn định mới nhất:

dotnetcli
dotnet tool uninstall -g dotnet-aspnet-codegenerator
dotnet tool install -g dotnet-aspnet-codegenerator

Cú pháp tổng quát

code
dotnet aspnet-codegenerator [arguments] [-b|--build-base-path] [-c|--configuration] [-n|--nuget-package-dir] [--no-build] [-p|--project] [-tfm|--target-framework]
dotnet aspnet-codegenerator [-h|--help]

Mô tả

Lệnh toàn cục dotnet aspnet-codegenerator chạy công cụ tạo mã và scaffolding engine của ASP.NET Core.

Đối số

generator

Generator (bộ tạo mã) cần chạy. Các generator có sẵn được liệt kê trong bảng sau:

GeneratorThao tác
areaScaffold một area (khu vực).
blazorScaffold các trang Blazor CRUD (tạo, đọc, cập nhật, xóa, danh sách).
blazor-identityTạo các file Blazor Identity.
controllerScaffold một controller (bộ điều khiển).
identityScaffold Identity (xác thực người dùng).
minimalapiTạo file endpoints với các API endpoint CRUD cho model và database context tùy chọn.
razorpageScaffold các Razor Pages (trang Razor).
viewScaffold một view (giao diện).

Tùy chọn

-b|--build-base-path

Đường dẫn cơ sở cho build.

-c|--configuration {Debug|Release}

Định nghĩa cấu hình build. Giá trị mặc định là Debug.

-h|--help

In hướng dẫn ngắn cho lệnh.

-n|--nuget-package-dir

Chỉ định thư mục gói NuGet.

--no-build

Không build project trước khi chạy. Truyền --no-build cũng ngầm bật cờ --no-restore.

-p|--project <PATH>

Chỉ định đường dẫn đến file project để chạy (tên thư mục hoặc đường dẫn đầy đủ). Nếu không chỉ định, công cụ mặc định sử dụng thư mục hiện tại.

-tfm|--target-framework

Framework (nền tảng) mục tiêu cần sử dụng.

Tùy chọn cho từng Generator

Tùy chọn Area

Cách dùng: dotnet aspnet-codegenerator area {TÊN AREA}

Placeholder {TÊN AREA} là tên area cần tạo.

Lệnh trên tạo ra các thư mục sau:

Dùng tùy chọn -h|--help để xem trợ giúp:

dotnetcli
dotnet aspnet-codegenerator area -h

Tùy chọn Blazor

Razor components (thành phần Razor) có thể được scaffold riêng lẻ cho ứng dụng Blazor bằng cách chỉ định tên template cần dùng. Các template được hỗ trợ:

Các tùy chọn của generator blazor:

Tùy chọnMô tả
`-dbProvider--databaseProvider`Database provider (nhà cung cấp cơ sở dữ liệu) cần dùng. Gồm sqlserver (mặc định), sqlite, cosmos, hoặc postgres.
`-dc--dataContext`Lớp database context cần dùng.
`-m--model`Lớp model cần dùng.
`-ns--namespaceName`Chỉ định namespace cho file Endpoints được tạo ra.
`--relativeFolderPath-outDir`Đường dẫn thư mục output tương đối. Nếu không chỉ định, file sẽ được tạo trong thư mục project.

Ví dụ sau tạo một component Edit (Edit.razor) trong thư mục Components/Pages/MoviePages:

dotnetcli
dotnet aspnet-codegenerator blazor Edit -dbProvider sqlite -dc BlazorWebAppMovies.Data.BlazorWebAppMoviesContext -m Movie -outDir Components/Pages

Tùy chọn Blazor Identity

Scaffold các Razor component Identity vào ứng dụng Blazor với generator blazor-identity.

Tùy chọnMô tả
`-dbProvider--databaseProvider`Database provider cần dùng. Gồm sqlserver (mặc định) và sqlite.
`-dc--dataContext`Lớp database context cần dùng.
`-f--force`Ghi đè các file hiện có.
`-fi--files`Danh sách các file cần scaffold, phân cách bởi dấu chấm phẩy.
`-lf--listFiles`Liệt kê các file có thể scaffold bằng tùy chọn `-fi--files`.
`-rn--rootNamespace`Root namespace để tạo mã Identity.
`-u--userClass`Tên lớp user cần tạo.

Tùy chọn Controller

Các tùy chọn chung:

Tùy chọnMô tả
`-b--bootstrapVersion`Chỉ định phiên bản Bootstrap và tạo thư mục wwwroot cho Bootstrap assets nếu chưa có.
`-dbProvider--databaseProvider`Database provider cần dùng. Gồm sqlserver (mặc định), sqlite, cosmos, postgres.
`-dc--dataContext`Lớp database context cần dùng hoặc tên lớp cần tạo.
`-f--force`Ghi đè các file hiện có.
`-l--layout`Trang layout tùy chỉnh cần dùng.
`-m--model`Lớp model cần dùng.
`-outDir--relativeFolderPath`Đường dẫn thư mục output tương đối.
`-scripts--referenceScriptLibraries`Thêm tham chiếu thư viện script vào các view được tạo.
`-sqlite--useSqlite`Cờ để chỉ định dùng SQLite thay vì SQL Server.
`-udl--useDefaultLayout`Dùng layout mặc định cho các view.

Các tùy chọn riêng cho controller:

Tùy chọnMô tả
`-actions--readWriteActions`Tạo controller với các action đọc/ghi mà không cần model.
`-api--restWithNoViews`Tạo controller với REST style API. noViews được giả định và các tùy chọn liên quan đến view bị bỏ qua.
`-async--useAsyncActions`Tạo các controller action bất đồng bộ.
`-name--controllerName`Tên của controller.
`-namespace--controllerNamespace`Chỉ định namespace cho controller được tạo.
`-nv--noViews`Không tạo view.
dotnetcli
dotnet aspnet-codegenerator controller -h

Tùy chọn Identity

Xem thêm: Scaffold Identity trong các project ASP.NET Core.

Tùy chọn Minimal API

Scaffold backend Minimal API với template minimalapi.

Tùy chọnMô tả
`-dbProvider--databaseProvider`Database provider cần dùng. Gồm sqlserver (mặc định), sqlite, cosmos, hoặc postgres.
`-dc--dataContext`Lớp database context cần dùng.
`-e--endpoints`Lớp endpoints cần dùng (không phải tên file).
`-m--model`Lớp model cần dùng.
`-namespace--endpointsNamespace`Chỉ định namespace cho file endpoints được tạo.
`-o--open`Bật OpenAPI.
`-outDir--relativeFolderPath`Đường dẫn thư mục output tương đối.
`-sqlite--useSqlite`Cờ để chỉ định dùng SQLite thay vì SQL Server.

Ví dụ sau tạo lớp endpoints tên SpeakersEndpoints với các API endpoint ánh xạ đến database operations:

dotnetcli
dotnet aspnet-codegenerator minimalapi -dc ApplicationDbContext -e SpeakerEndpoints -m BackEnd.Models.Speaker -o

Tùy chọn Razor Page

Razor Pages có thể được scaffold riêng lẻ bằng cách chỉ định tên trang mới và template cần dùng. Các template được hỗ trợ:

Các tùy chọn riêng cho razorpage:

Tùy chọnMô tả
`-namespace--namespaceName`Tên namespace cho lớp PageModel được tạo.
`-npm--noPageModel`Không tạo lớp PageModel cho template Empty.
`-partial--partialView`Tạo một partial view (view con).

Ví dụ sau dùng template Edit để tạo CustomEditPage.cshtmlCustomEditPage.cshtml.cs trong thư mục Pages/Movies:

dotnetcli
dotnet aspnet-codegenerator razorpage CustomEditPage Edit -dc RazorPagesMovieContext -m Movie -outDir Pages/Movies

Tùy chọn View

Views có thể được scaffold riêng lẻ bằng cách chỉ định tên view và template. Các template được hỗ trợ:

Các tùy chọn riêng cho view:

Tùy chọnMô tả
`-namespace--controllerNamespace`Chỉ định namespace cho controller được tạo.
`-partial--partialView`Tạo một partial view.

Ví dụ sau dùng template Edit để tạo CustomEditView.cshtml trong thư mục Views/Movies:

dotnetcli
dotnet aspnet-codegenerator view CustomEditView Edit -dc MovieContext -m Movie -outDir Views/Movies