2008-12-29 11 views
6

Trên một bài viết liên quan, tôi đã đề cập rằng tôi đã tìm thấy những người trợ giúp HTML tùy chỉnh để có được điều đó, hữu ích, khi phát triển. Ví dụ, khi tôi cần phân trang cho một "lưới", tôi có một trợ giúp tùy chỉnh mà tôi có thể gọi Html.Pager().Các lớp trợ giúp HTML tùy chỉnh có vi phạm mô hình ASP.NET MVC không?

Một số người đã thực hiện một điểm mà người trợ giúp HTML vi phạm mô hình MVC. Cá nhân, tôi không thấy nó khác biệt so với những người trợ giúp hiện tại, chẳng hạn như Html.Textbox() hoặc Html.ActionLink().

Tôi vẫn đang cố gắng tìm hiểu thêm về MVC, vì vậy tất cả các quan điểm đều được đánh giá cao.

+0

đối số được thực hiện là gì? Tôi thấy không có vấn đề gì trừ khi bạn thực sự vụng về trong những gì bạn cho phép truy cập trợ giúp –

Trả lời

16

Lưu ý rằng những người trợ giúp hiện tại đều được viết dưới dạng phương thức mở rộng của lớp HtmlHelper. Chúng tôi đã thực hiện một cách rõ ràng cách tiếp cận đó để những người khác có thể viết các phương thức trợ giúp của riêng họ như là các phương thức mở rộng của HtmlHelper.

Vì vậy, nói chung, đây không phải là vi phạm mô hình MVC. Tôi đoán nó thực sự phụ thuộc vào những gì bạn đang làm trong helper của bạn. Người trợ giúp chỉ cần hiển thị html dựa trên các đối số được truyền vào chúng. Họ không nên thực hiện bất kỳ truy cập dữ liệu nào, v.v ...

Chúng chỉ đóng gói mã để hiển thị các phần đánh dấu chung. Nếu bạn đang làm điều đó, thì bạn không vi phạm mô hình ASP.NET MVC.

+0

Vậy cách tốt nhất để hiển thị các phần phổ biến của một ứng dụng với truy cập dữ liệu hoặc bất kỳ thứ gì khác ngoài việc hiển thị Html. Trong MVC 2 chúng ta có Html.RenderAction, nó có lẽ là cách tốt nhất, vì nó đến từ bộ điều khiển, nhưng trong MVC 1? –