Có ai đã thiết lập quy ước đặt tên tốt cho hành động trong MVC không? Tôi đã đặc biệt nhìn vào ASP.net MVC nhưng nó là một câu hỏi chung. Ví dụ tôi có một hành động hiển thị màn hình đăng nhập (Đăng nhập) và một thao tác xử lý yêu cầu đăng nhập từ trang đó (LoginTest). Tôi không quan tâm đến tên và tôi còn rất nhiều ứng dụng để viết.Công ước đặt tên hành động
Trả lời
Rob Conery tại MS đề xuất một số kiểu đặt tên RESTful hữu ích cho các hành động.
* Index - the main "landing" page. This is also the default endpoint. * List - a list of whatever "thing" you're showing them - like a list of Products. * Show - a particular item of whatever "thing" you're showing them (like a Product) * Edit - an edit page for the "thing" * New - a create page for the "thing" * Create - creates a new "thing" (and saves it if you're using a DB) * Update - updates the "thing" * Delete - deletes the "thing"
kết quả trong URL dọc theo dòng (đối với một diễn đàn)
* http://mysite/forum/group/list - shows all the groups in my forum * http://mysite/forum/forums/show/1 - shows all the topics in forum id=1 * http://mysite/forums/topic/show/20 - shows all the posts for topic id=20
Hậu tố hành động Django được dựng sẵn _done. Vì vậy, LoginDone sẽ là trang xử lý Đăng nhập (theo kiểu trường hợp lạc đà ASP.NET MVC).
Đó là okay, nhưng nó ngụ ý rằng việc đăng nhập đã được hoàn thành khi thực sự là hành động thực hiện được xử lý đăng nhập . Có lẽ PromptLogin và Đăng nhập. – stimms
Nó không liên quan đến quy ước bạn sử dụng để đặt tên Hành động điều khiển, miễn là nó phù hợp với bạn và dễ hiểu bởi những người làm việc trên đó.
Trong trường hợp hành động đăng nhập của bạn, LoginDone là tốt và trong cùng một ProcessLogin sẽ dễ hiểu, do đó, sử dụng một quy ước mà bạn cảm thấy thoải mái.
Cá nhân tôi có thể sẽ phụ thuộc vào Đăng nhập và ProcessLogin, vì LoginDone có thể hơi gây nhầm lẫn về những gì Hành động đang làm - điều này tất nhiên giả định rằng Hành động phản ứng với thông tin đăng nhập của người dùng và kiểm tra xem chúng có hợp lệ hay không . Sau đó, bạn có thể chuyển đến một Hành động khác được gọi là LoginDone khi đăng nhập thành công hoặc LoginFailed nếu nó không thành công.
Tôi đã tìm thấy một blog post by Stephen Walther hữu ích cho việc tìm kiếm một quán sơ đồ đặt tên. Anh ta cũng xuất phát từ một lược đồ đặt tên kiểu REST, với một số ngoại lệ duy nhất mà anh ta giải thích.
Liên kết dường như không hoạt động nữa, nó đi vào một danh sách các bài viết MVC nhưng không ai có vẻ liên quan đến cuộc thảo luận này. Bất kỳ ai cũng có liên kết được cập nhật? –
Đây là liên kết được cập nhật: http://stephenwalther.com/blog/archive/2008/06/27/asp-net-mvc-tip-11-use-standard-controller-action-names.aspx –
nó cũng bị hỏng – Fedor
Đường ray có quy ước đặt tên hành động tốt cho các hoạt động CRUD: Rails Routing from the Outside In.
HTTP Verb Path Controller#Action Used for GET /photos photos#index display a list of all photos GET /photos/new photos#new return an HTML form for creating a new photo POST /photos photos#create create a new photo GET /photos/:id photos#show display a specific photo GET /photos/:id/edit photos#edit return an HTML form for editing a photo PATCH/PUT /photos/:id photos#update update a specific photo DELETE /photos/:id photos#destroy delete a specific photo
Đây thực chất là một bản cập nhật để Paul Shannon's answer, từ nguồn của mình (Rob Conery) ngầm nói rằng ông sao chép danh sách của mình từ Rails.
Stephen Walther về ASP.NET MVC Tip #11 – Use Standard Controller Action Names có lẽ rõ bạn liên quan đến quy ước đặt tên của MVC Action
quy ước đặt tên ...
- 1. Dự án/Công ước đặt tên gói?
- 2. Quy ước đặt tên AJAX
- 3. Công ước đặt tên cho Tiểu bang/Vùng/Tỉnh
- 4. Công ước tự động
- 5. Quy ước đặt tên: Đặt tên biến boolean là gì?
- 6. Quy ước đặt tên cho Traits PHP?
- 7. quy ước đặt tên serialVersionUID
- 8. Java ước gói đặt tên
- 9. Quy ước đặt tên Ruby?
- 10. Quy ước đặt tên Django
- 11. Quy ước đặt tên F #
- 12. Khung chơi - Quy ước đặt tên CRUD
- 13. Quy ước đặt tên không gian Javascript
- 14. Quy ước đặt tên thử nghiệm .NET
- 15. C++: Danh sách khởi tạo/Quy ước đặt tên
- 16. Quy ước đặt tên khóa Redis?
- 17. ExtJS 4 Quy ước đặt tên
- 18. Quy ước đặt tên ID trong ASP.NET?
- 19. Quy ước đặt tên biến số
- 20. Quy ước đặt tên Microsoft VB.NET
- 21. MongoDB schema thiết kế đặt tên ước
- 22. Quy ước đặt tên tham số bitmask?
- 23. Quy ước đặt tên trên các chức năng IBAction
- 24. Quy ước đặt tên tốt cho các phương pháp thực hiện hành động có điều kiện là gì?
- 25. Khả năng hiển thị Tự động liên kết với quy ước đặt tên
- 26. Công ước về tên tệp của các lớp chung
- 27. Quy ước đặt tên hình ảnh cho iPhone 5
- 28. Quy ước đặt tên cho di chuyển Rails
- 29. Công ước đặt tên gói Java của Sun: sun vs. com.sun
- 30. quy ước đặt tên cho biến công cộng và riêng tư?
Tôi cũng thấy rằng với MVC mới nhất, bạn có thể đặt động từ nào được chấp nhận bởi một hành động để bạn có thể đặt tên cho một hành động Chỉnh sửa cho cả tải trang ban đầu và lưu thông tin. – stimms
Dường như bài đăng từ Rob Conery có khả năng đưa ra cả hình thức hiển thị và phương thức xử lý mẫu có tên giống nhau. Tôi cũng lưu ý mẫu Nerd Dinner có Edit, nhưng mẫu Controller có Update để sửa đổi một thực thể. – Richard
Tôi thích điều này - chỉ có vấn đề là bạn kết thúc với nhiều tệp xem trong dự án có cùng tên (ví dụ: 'Chỉnh sửa'), làm cho nó khó hiểu khi làm việc với nhiều tệp mở trong VS.Có ai biết giải pháp gọn gàng không? Tôi hiện đang gọi các chế độ xem "EditProduct", "ViewProduct", v.v. –