Lớp HtmlHelper
bao gồm hai phương thức mở rộng để tạo chuỗi html. Display[]
và DisplayFor[]
Chúng tôi sẽ sử dụng lớp mô hình sau với phương thức Display[] và DisplayFor[]
Thí dụ. người mẫu sinh viên
Sao chéppublic class Student
{
public int StudentId { get; set; }
public string StudentName { get; set; }
public int Age { get; set; }
}
Html. DisplayFor[]
Phương thức trợ giúp DisplayFor[]
là một phương thức mở rộng được gõ mạnh. Nó tạo ra một chuỗi html cho thuộc tính đối tượng mô hình được chỉ định bằng biểu thức lambda
Phương thức DisplayFor[] Chữ ký.
@model Student
@Html.DisplayFor[m => m.StudentName]
0Truy cập MSDN để biết tất cả các tình trạng quá tải của phương thức DisplayFor[]
Thí dụ. DisplayFor[] trong Chế độ xem dao cạo
Sao chép@model Student
@Html.DisplayFor[m => m.StudentName]
Kết quả Html
"Steve"
Trong ví dụ trên, chúng ta đã chỉ định thuộc tính
@model Student
@Html.DisplayFor[m => m.StudentName]
1 của model Student bằng cách sử dụng biểu thức lambda trong phương thức DisplayFor[]. Vì vậy, nó tạo ra một chuỗi html với giá trị StudentName, @model Student
@Html.DisplayFor[m => m.StudentName]
2, trong ví dụ trênTrưng bày[]
@model Student
@Html.DisplayFor[m => m.StudentName]
3 là một phương thức được gõ lỏng lẻo, tạo ra một chuỗi trong chế độ xem dao cạo cho thuộc tính được chỉ định của mô hình hỗ trợ. NET lõi 3. 1,. MẠNG 5,. NET 6 — Bảng điều khiển, ASP. NET Core Web/Api, Dịch vụ công nhân, WPF/WinForms[. NET Core] Ứng dụng
Trong hầu hết các dự án, có thể có một hoặc nhiều yêu cầu sau
- Tạo hóa đơn, báo cáo, sao kê ngân hàng, sơ yếu lý lịch bằng HTML và sau đó chuyển đổi sang PDF hoặc gửi email
- Gửi email cho nhiều người dùng với nội dung email động giàu HTML với dữ liệu khác nhau và hơn thế nữa
- Tạo tệp từ mẫu
- Thực hiện các thao tác trên trong một dịch vụ công nhân riêng biệt
Tạo chuỗi HTML bên trong mã sẽ lộn xộn. Nhiều khung phổ biến có một công cụ mẫu để làm như vậy. Tương tự ASP. NET Core có Dao cạo. Nhưng hiển thị chuỗi ra khỏi chế độ xem Dao cạo [. cshtml] không đơn giản trong cả ASP. NET Core Ứng dụng web hoặc Ứng dụng bảng điều khiển
Có một vài thư viện phổ biến để làm như vậy. Nhưng tôi không thấy thuyết phục với chúng vì chúng chậm hoặc thiếu các tính năng xem như công cụ xem, dạng xem, thành phần dạng xem và trình trợ giúp HTML hoặc yêu cầu một số dòng mã hoặc thiếu hỗ trợ cho cả ứng dụng web và ứng dụng bảng điều khiển hoặc không' . NET lõi 3. 0+
Dao cạo. tạo khuôn mẫu. Cốt lõi để giải cứu. Tôi đã phải tạo thư viện này vì nhu cầu cấp bách
Bắt đầu nào…
Trong hướng dẫn này, tôi sẽ hiển thị chuỗi HTML cho Hóa đơn từ. cshtml. Mã nguồn có thể được tìm thấy ở đây
Tạo thư viện lớp RazorHãy tạo dự án thư viện lớp dao cạo sẽ chứa. tệp cshtml
- Trong Visual Studio 2019 [v16. 6. 3 — ưu tiên phiên bản mới nhất], hãy tạo một “Thư viện lớp Razor” mới [. NET Core] Dự án. Hãy đặt tên cho nó là 'Dao cạo. Mẫu'
Tạo dự án 'Thư viện lớp dao cạo' mới
- If we look at the Razor.Templates.csproj, note that Sdk=”Microsoft.NET.Sdk.Razor”. This will use the Razor SDK to precompile the .cshtml files to .Views.dll
- Make sure the Property Group contains true. Otherwise, add it.
- Also, please ensure is present.
- Đừng lãng phí quá nhiều thời gian để viết HTML. Hãy để tôi lấy mẫu HTML cho hóa đơn và chuyển đổi nó thành. cshtml với mô hình xem C# được thêm vào
- Đã thêm hai tệp có tên Hóa đơn. cshtml & Hóa đơn. cs
Hóa đơn. cs
- Nếu chúng ta xây dựng 'Dao cạo. Templates', chúng ta có thể thấy chế độ xem dao cạo được biên dịch trước thành 'Dao cạo. mẫu. Lượt xem. dll'
- Cho đến nay, chúng tôi đã tạo Thư viện lớp dao cạo của mình
- Ghi chú. Trong. NET 6, các khung nhìn được biên dịch thành cùng một dll với dự án. Không có tệp dll riêng biệt nào được tạo
Hiển thị Chế độ xem thành Chuỗi trong Ứng dụng Bảng điều khiển
- Tạo một ứng dụng bảng điều khiển mới. Hãy đặt tên cho nó là 'Dao cạo. tạo khuôn mẫu. Thí dụ. Hóa đơn'
- Thêm một tham chiếu đến 'Dao cạo. Dự án mẫu. -cái này quan trọng. Nếu không, ngoại lệ 'Không tìm thấy chế độ xem' sẽ bị ném
- Cài đặt Razor. tạo khuôn mẫu. Gói NuGet cốt lõi
- Vì. NET 6, sử dụng v1. 7. 0+
cài đặt dao cạo. tạo khuôn mẫu. Core sử dụng trình quản lý gói Nuget
- Hãy xây dựng mô hình chế độ xem cần được chuyển sang chế độ xem dao cạo
Chương trình. cs
- Bây giờ gọi dòng ma thuật với đường dẫn tương đối đến. tệp cshtml & đối tượng mô hình xem dưới dạng tham số
- Luôn đảm bảo rằng các. Các tệp cshtml nằm trong một đường dẫn duy nhất khi có nhiều hơn một thư viện lớp dao cạo được tham chiếu
- Không chờ đợi nữa… Hãy chạy chương trình
đầu ra
- Chúng tôi đã hiển thị chế độ xem dao cạo [. cshtml] một cách nhanh chóng chỉ với một dòng mã trong ứng dụng bảng điều khiển
- Điều tương tự cũng xảy ra với ASP. NET Core ứng dụng Web, ASP. NET Core Web API, Worker Service và thậm chí cả WPF/WinForms[. NET Core]. Hãy tìm các ví dụ ở đây
- Hơn nữa, chúng tôi có thể mở rộng điều này để gửi email, tạo PDF từ HTML, v.v.
Nếu bạn cần đưa các phụ thuộc vào chế độ xem của mình, chúng tôi có thể tận dụng hệ thống DI sẵn có trong. NET lõi. Tìm dự án ví dụ ở đây
Đối với ASP. NET Core, trong Khởi động. lớp cs, đăng ký phụ thuộc như dưới đây
Bây giờ từ ứng dụng của bạn, hiển thị chế độ xem như bình thường bằng cách sử dụng lớp tĩnh
kết xuất. chuỗi cshtml bằng cách sử dụng lớp tĩnh RazorTemplateEngine
hoặc tiêm đối tượng bằng cách sử dụng giao diện IRazorTemplateEngine
trong hàm tạo hoặc tham số [từ v1. 8. 0]
Tiêm đối tượng RazorTemplateEngine bằng giao diện IRazorTemplateEngine
tiêm. cshtml trông giống như bên dưới
Đối với Ứng dụng Bảng điều khiển, hãy sử dụng DI như bên dưới
Tìm một
Kho lưu trữ GitHub. https. //github. com/sundaranbu/RazorTemplating
Gói NuGet. https. //www. nuget. org/gói/Dao cạo. tạo khuôn mẫu. Cốt lõi
Ủng hộNếu bạn thấy điều này hữu ích, hãy cân nhắc hỗ trợ phát triển thư viện này bằng một hoặc nhiều ly cà phê;] Cảm ơn