1 ASP.NET MVC 3 – Tạo Custom Html Helper (Razor) Sun Jul 05, 2015 9:11 pm
Admin
Admin
ASP.NET MVC 3 – Tạo Custom Html Helper (Razor)
HtmlHelper là một lớp hỗ trợ việc tạo các thành phần (thẻ) html với Razor Engine. Mặc dù lớp này cung cấp rất nhiều các thành phần nhưng vẫn chưa đáp ứng được yêu cầu cụ thể cho từng dự án. Khi đó, bạn có thể tạo ra thêm các phương thức Html Helper mới để sử dụng nhờ vào kĩ thuật Extension Method.
Trong bài viết này, tôi sẽ tạo một ví dụ cho phép thêm vào một thẻ
HtmlHelper là một lớp hỗ trợ việc tạo các thành phần (thẻ) html với Razor Engine. Mặc dù lớp này cung cấp rất nhiều các thành phần nhưng vẫn chưa đáp ứng được yêu cầu cụ thể cho từng dự án. Khi đó, bạn có thể tạo ra thêm các phương thức Html Helper mới để sử dụng nhờ vào kĩ thuật Extension Method.
Trong bài viết này, tôi sẽ tạo một ví dụ cho phép thêm vào một thẻ
(một thẻ mới của Html5) thông qua cú pháp:
– content: phần nội dung sẽ ẩn/hiện khi bạn click vào tiêu đề
– open: tham số boolean xác định phần content sẽ được ẩn/hiện theo mặc định (khi mới tải trang).
Minh họa:
(a poem by Emily Bronte)
Bản chất của phương pháp này là tạo ra chuỗi Html trong một extension method và trả về dưới dạng một IHtmlString. Loại helper này là “code based” do được viết hoàn toàn bằng C# (hoặc VB) để tạo ra nội dung Html cần thiết.
Để thực hiện, bạn tạo một dự án ASP.NET MVC mới và thêm một lớp dùng để chứa các extension sẽ được tạo ra. Sau đó, thêm vào phương thức Details sau. Tôi dùng StringBuilder để tối ưu các thao tác cộng chuỗi.
Tiếp tục, bạn cần thêm namespace MyHtmlHelpers vào tập tin Views/Web.config để có thể sử dụng được các lớp trong namespace này trong view.
Trong tập tin view bất kì (có đuôi .cshtml với ngôn ngữ C#), bạn có thể sử dụng Html Helper vừa tạo như sau:
Nó sẽ tạo ra đoạn html sau khi hiển thị trên trình duyệt:
YinYangIt’s Blog
– summary: chuỗi tiêu đề@Html.Details(summary, content, open)
– content: phần nội dung sẽ ẩn/hiện khi bạn click vào tiêu đề
– open: tham số boolean xác định phần content sẽ được ẩn/hiện theo mặc định (khi mới tải trang).
Minh họa:
(a poem by Emily Bronte)
Bản chất của phương pháp này là tạo ra chuỗi Html trong một extension method và trả về dưới dạng một IHtmlString. Loại helper này là “code based” do được viết hoàn toàn bằng C# (hoặc VB) để tạo ra nội dung Html cần thiết.
Để thực hiện, bạn tạo một dự án ASP.NET MVC mới và thêm một lớp dùng để chứa các extension sẽ được tạo ra. Sau đó, thêm vào phương thức Details sau. Tôi dùng StringBuilder để tối ưu các thao tác cộng chuỗi.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
|
1 2 3 4 5 6 7 8 9 10 11 |
|
1 2 3 4 |
|
1 2 3 4 5 6 7 |
|