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.textboxfor
và passwordfor
? Cảm ơnMVC3 tại sao sử dụng html.editorfor
Trả lời
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.
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.
- 1. Làm thế nào tôi có thể thiết lập id sử dụng Html.EditorFor với MVC3
- 2. ASP.NET MVC3 @ Html.EditorFor Checkbox vô hiệu hoá kích hoạt
- 3. sử dụng spring mvc3 @ResponseBody có 415 Loại phương tiện không được hỗ trợ tại sao?
- 4. Sử dụng Page.User.Identity.Name trong MVC3
- 5. Html.EditorFor SelectList
- 6. Tại sao sử dụng NSObjectController
- 7. tại sao sử dụng @ Url.Content
- 8. Tại sao sử dụng DialogFragment?
- 9. Tại sao sử dụng mysqli_close()?
- 10. Tại sao Unity sử dụng một Service Locator?
- 11. Sử dụng pdf.js trong ASP.NET MVC3
- 12. Làm thế nào để sử dụng @ Html.EditorFor() mà không có mô hình xem
- 13. Tại sao Android sử dụng Java?
- 14. Tại sao tôi phải sử dụng $ (this)?
- 15. Tại sao sử dụng MultiParamTypeClasses trong MonadState
- 16. Tại sao sử dụng từ khóa void?
- 17. Tại sao lại sử dụng NSFetchedResultsController?
- 18. Tại sao lại sử dụng document.write?
- 19. Tại sao lại sử dụng hashmap?
- 20. C# lớp tĩnh tại sao sử dụng?
- 21. Tại sao nên sử dụng scala.collection.immutable.Stack
- 22. Tại sao HTTP sử dụng TCP?
- 23. Tại sao sử dụng AMQP/ZeroMQ/RabbitMQ
- 24. Tại sao tôi cần sử dụng ngắt?
- 25. Tại sao không ai sử dụng INotifyPropertyChanging?
- 26. Tại sao sử dụng QObject :: setObjectName()?
- 27. Tại sao sử dụng strings.xml trong Android?
- 28. Tại sao tôi nên sử dụng Socket.io?
- 29. Tại sao chúng ta sử dụng Response.ClearHeaders()?
- 30. Tại sao sử dụng @ Scripts.Render ("~/bó/jquery")
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. –