Tôi đang tạo phương thức mở rộng HtmlHelper. Nhiều phương thức khung dựng sẵn hỗ trợ các tham số như htmlAttributes (của đối tượng kiểu) được hiển thị trên HTML kết quả. Làm thế nào tôi có thể cung cấp quá tải của các phương pháp riêng của tôi mà cũng hỗ trợ một tham số htmlAttributes mà không cần viết lại logic ghép nối chuỗi để hiển thị chúng như là các thuộc tính trên thẻ?Làm thế nào để hỗ trợ các tham số htmlAttributes trong phần mở rộng HtmlHelper?
Trả lời
Đối tượng HtmlHelper
có phương thức chuyển đổi đối tượng thành từ điển tên/giá trị, sau đó bạn có thể hợp nhất vào thẻ của mình khi thẻ được tạo. Ví dụ, đoạn mã này sẽ tạo ra một thẻ <script>
với bất cứ điều gì thuộc tính thêm được thông qua tại:
var attributes = HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes) as IDictionary<string, object>;
TagBuilder tag = new TagBuilder("script");
tag.MergeAttributes(attributes);
tag.MergeAttribute("type", "text/javascript");
tag.MergeAttribute("src", scriptPath);
Bạn có thể cung cấp quá tải hoặc sử dụng các giá trị mặc định để cung cấp một giá trị null
cho htmlAttributes
, mà sẽ tạo ra một sản phẩm nào Dictionary
.
(Phương pháp này cũng khử trùng tên thuộc tính thành các thuộc tính HTML hợp lệ, v.v. để an toàn để sử dụng trên bất kỳ đối tượng nào.)
Ồ, chỉ là những gì tôi cần. Cảm ơn bạn! – blaster
- 1. Làm thế nào để thêm htmlattributes bổ sung trong phần mở rộng cho DropDownListFor
- 2. (phần mở rộng SIMD) SSE hỗ trợ trong gcc
- 3. Cách gọi UrlHelper khi viết phần mở rộng cho HtmlHelper
- 4. Nối vào các giá trị trong phương thức mở rộng HtmlHelper
- 5. Các regex mở rộng có hỗ trợ tham chiếu ngược không?
- 6. Bật hỗ trợ mã PHP cho các phần mở rộng PECL khác nhau trong Eclipse
- 7. Mở rộng tham số & phần còn lại trong Common Lisp
- 8. Làm cách nào để bật hỗ trợ tiện ích mở rộng C trong jRuby?
- 9. Tạo phần mở rộng nút MVC Delete - Cách mở rộng trình trợ giúp Html của MVC?
- 10. Làm cách nào để mở rộng lớp URL để hỗ trợ các giao thức khác trong java (android)?
- 11. Mã hóa HTML cho phương pháp mở rộng HtmlHelper
- 12. phương pháp HtmlHelper và RouteValueDictionary
- 13. SMTP AUTH phần mở rộng không được hỗ trợ bởi máy chủ trong python 2.4
- 14. Làm thế nào để cài đặt phần mở rộng ITL
- 15. Mở rộng tham số Bash hoạt động như thế nào?
- 16. HtmlAttributes Thêm vào template
- 17. Kiểm tra đơn vị Phương pháp mở rộng trên HtmlHelper
- 18. Trợ giúp với ASP.NET MVC Thiết kế API HtmlHelper
- 19. Làm thế nào để cấu hình các phần mở rộng học thuyết trong Zend Framework 2?
- 20. SQLAlchemy với Python 3.2: Phần mở rộng C không được hỗ trợ?
- 21. Mở rộng ngữ pháp ANTLR đơn giản để hỗ trợ các biến đầu vào
- 22. Làm thế nào để hỗ trợ một phần Cập nhật (PATCH) trong REST
- 23. Làm thế nào để sử dụng Apache Mod_rewrite để loại bỏ phần mở rộng php, trong khi vẫn giữ các tham số GET?
- 24. Làm thế nào để nhận dữ liệu email thô với phần mở rộng imap?
- 25. Mở rộng danh sách các định dạng ảnh được hỗ trợ trong GDI +
- 26. Phương pháp mở rộng HtmlHelper so với chế độ xem một phần?
- 27. Tôi làm cách nào để sử dụng tiện ích mở rộng cốt lõi của Hỗ trợ Hoạt động?
- 28. Làm thế nào để thoát khỏi các phần mở rộng từ file basename sử dụng python
- 29. Bash mở rộng tham số delimiter
- 30. Làm thế nào để tìm thấy các thông số được hỗ trợ trong tập tin cấu hình Tesseract OCR
Bạn có gì cho đến nay? –