2012-04-21 26 views
5

Tôi đang xem các ví dụ dao cạo MVC3 và thấy html.editorfor được sử dụng và cũng được hỏi về rất nhiều trên diễn đàn này. Tại sao tôi không thể sử dụng html.textboxforpasswordfor? Cảm ơnMVC3 tại sao sử dụng html.editorfor

Trả lời

9

EditorĐể có lợi thế là nó sẽ cố gắng kết xuất trình chỉnh sửa được liên kết với loại dữ liệu.

Ví dụ: Nếu bạn thiết kế của riêng bạn Editor Templates họ sẽ tự động được trả dựa trên kiểu của tài sản hoặc UIHint

Mẫu biên tập hữu ích có thể là một mà tạo ra một bảng chọn ngày khi loại của tài sản là một DateTime.

Có một số tình huống khác nữa mà 'thông minh' EditorFor sẽ tạo ra các biên tập viên 'tốt nhất' cho bất động sản là một ví dụ điển hình là khi nó ám một <textarea> khi gắn thẻ tài sản với MultilineText

Sử dụng TextBoxFor và PasswordFor là hoàn toàn tốt cho những trường hợp mà bạn không yêu cầu 'một trình soạn thảo đặc biệt'. Nó thậm chí có thể đơn giản hóa cuộc sống của bạn khi phải thiết lập HtmlAttributes.

+0

Tôi muốn cảm ơn cả hai câu trả lời. Những điều này đã giải quyết toàn bộ vấn đề. Tôi chấp nhận câu trả lời này do 2 liên kết mà tôi đã được chỉ ra, thông tin tuyệt vời. –

6

Ref Differences between Html.TextboxFor and Html.EditorFor in MVC and Razor cho rõ ràng sự nghi ngờ về điều này ..

Các HtmlTextboxFor luôn tạo ra một textbox (<input type="text" ...).

Trong khi EditorFor nhìn vào loại và thông tin meta, và có thể làm một điều khiển hoặc một mẫu bạn cung cấp.

Ví dụ về thuộc tính DateTime, bạn có thể tạo mẫu sử dụng jQuery DatePicker.

nếu bạn quyết định thay đổi một cái gì đó để các khía cạnh về cách textbox của bạn được trả lại như gói chúng trong một div bạn chỉ có thể viết một trình soạn thảo tùy chỉnh mẫu (~/Views/Shared/EditorTemplates/string.cshtml) và tất cả các hộp thoại của bạn trong ứng dụng của bạn sẽ tự động được hưởng lợi từ sự thay đổi này trong khi nếu bạn đã hardcoded Html.TextBoxFor bạn sẽ phải sửa đổi nó ở khắp mọi nơi.

Các vấn đề liên quan