Tôi mới tham gia MVC asp.net vì vậy hãy chịu với tôi. Tôi cần tạo một menu lặp lại qua nhiều chế độ xem. Điều gì sẽ phục vụ tốt hơn mục đích Html.Action
HOẶC Html.Partial
.MVC Html.Partial hoặc Html.Action
Trả lời
Dưới đây là những gì tôi xem xét hướng dẫn của tôi về việc sử dụng Html.Action hoặc Html.Partial
Html.Partial
- Sử dụng
Html.Partial
khi bạn đang render nội dung tĩnh hoặc, - Nếu bạn sẽ chuyển dữ liệu từ ViewModel đang được gửi đến chế độ xem chính
Html.Action
- Sử dụng
Html.Action
khi bạn thực sự cần để lấy dữ liệu bổ sung từ máy chủ để cư xem phần
Về cơ bản, nếu là tĩnh, sử dụng Html.Partial()
. Nếu dữ liệu độc lập động, mô hình, hãy sử dụng Html.Action()
. Có thể có nhiều tình huống hơn, nhưng điều này sẽ cho bạn ý tưởng tốt về nơi/cách đi. Html.RenderPartial()
và Html.RenderAction()
có thể hoán đổi cho các chức năng tương tự được đặt tên ở trên.
Cảm ơn HTML.Action đã làm các trick cho tôi. –
Giải thích tốt +1 cho bạn. – Pamma
Cẩn thận rằng nếu ứng dụng có nhiều chu kỳ thông qua bộ điều khiển, nó có thể làm cho nó hơi khó khăn hơn để lý do những gì xảy ra cho một hành động nhất định, như Html.Action() trả về bộ điều khiển - có khả năng khác. Tùy thuộc vào việc triển khai/phụ thuộc của bạn, điều này cũng có thể tốn kém và [bộ lọc] (http://msdn.microsoft.com/en-us/library/gg416513 (vs.98) .aspx) có thể là giải pháp thay thế trong một số các trường hợp. – Cornelius
Html.Partial: Hiển thị Xem một phần mà không cần nhấn hành động điều khiển trước. Xem: Partial Views
Html.Action Gọi một hành động khiển, mà có thể trở lại một cái nhìn/phần xem (hoặc có thể không, nó có thể ném một HttpNotFound hoặc trả lại Json, hoặc những thứ khác).
Trình đơn của bạn có yêu cầu chế độ xem hay không?
Nếu đó là menu tĩnh, Html.Partial
sẽ phù hợp với nhu cầu của bạn. Đặt nội dung menu tĩnh bên trong chế độ xem từng phần và gọi Html.Partial
nơi bạn muốn hiển thị nội dung đó.
Nếu menu đang được tạo ra một mô hình xem, bạn có thể sử dụng một trong hai Html.Partial
hoặc Html.Action
:
Chaining mô hình điểm sử dụng Html.Partial:
public class MenuViewModel {
// menu data goes here
}
public class GeneralViewModel : MenuViewModel {
// general view info goes here
}
public ActionResult Index() {
return View(new GeneralViewModel());
}
// View Code
@model GeneralViewModel
<div>@Html.Partial("_partialName", model)</div>
Ở đây chúng ta vượt qua một mô hình xem hoàn chỉnh cho chế độ xem và chế độ xem gọi một phần và đưa mô hình của nó ra chế độ xem một phần.
** Tách các mô hình sử dụng Html.Action: **
public ActionResult Index() {
return View(new GeneralViewModel());
}
public ActionResult MenuView() {
return PartialView(new MenuViewModel());
}
// View Code
@model GeneralViewModel
<div>@Html.Action("MenuView")</div>
đây quan điểm gọi là hành động điều khiển MenuView mà tạo ra một mô hình quan điểm mới và vượt qua nó để một phần.
Trường hợp 1: Sử dụng phương pháp @Html.Partial()
nếu bạn có Chế độ xem một phần khác nhau với các Mô hình khác nhau.
Trường hợp 2: Sử dụng phương pháp @Html.Action()
nếu bạn có một chế độ xem một phần với một Mô hình, nhưng dữ liệu khác nhau.
- 1. ASP.NET MVC: Sử dụng Html.Partial hoặc Html.Action?
- 2. MVC 3 Html.RenderPartial vs Html.Partial
- 3. Chuyển mô hình đến Html.Action
- 4. Asp.Net MVC 3 - @ Html.Action sẽ không hiển thị/trả lại bất kỳ HTML
- 5. ASP.net MVC - Tôi có thể nói cho Html.Partial nơi tìm thấy chế độ xem không?
- 6. hiển thị usercontrol (cshtml) bằng cách sử dụng @ Html.Partial
- 7. Sự khác biệt giữa Html.RenderAction và Html.Action
- 8. Html.Action - Nhận so với bài viết
- 9. Tại sao bạn cần định tuyến cho Html.Action?
- 10. MVC 3 Thuộc tính mô hình không được đặt ở chế độ xem từng phần được gọi là html.action
- 11. ASP.NET MVC hoặc WebForms?
- 12. Umbraco hoặc ASP.NET MVC
- 13. Spring MVC hoặc Wicket?
- 14. Tôi có thể sử dụng Html.Action như thế nào?
- 15. Asp.net MVC json hoặc Json.net?
- 16. Cách sử dụng phương thức Html.Partial() để hiển thị chế độ xem một phần với đường dẫn rõ ràng
- 17. Tìm hiểu Asp.Net WebForms hoặc Asp.Net MVC
- 18. pjax hoặc phía máy khách MVC?
- 19. ASP.NET MVC: Controller.HandleUnknownAction 404 hoặc 405?
- 20. jQuery Mobile Directions ASP.NET hoặc MVC
- 21. ASP.NET MVC - HttpException hoặc xem lại?
- 22. Nhanh hơn asp.net mvc json hoặc json.net?
- 23. là Flask một MVC hoặc MTV?
- 24. MVC 4 _Layout.cshtml viewmodel
- 25. Asp .Net MVC ViewModel nên là lớp hoặc cấu trúc?
- 26. Extjs4 MVC, cách lấy Model hoặc View từ lớp Controller?
- 27. Lựa chọn nào: ASP.NET MVC hoặc RESTful WCF?
- 28. MVP (Model View Presenter) hoặc MVC (Model View Controller)
- 29. REST bằng cách sử dụng JAX RS hoặc Spring MVC
- 30. Tư vấn về cách sử dụng ASP.net WebForms hoặc MVC
Không có thêm thông tin Html.Partial. Đặt nội dung menu của bạn ở chế độ xem từng phần và gọi nó bằng '@ Html.Partial (" partialViewName ")' – MisterIsaak
Cảm ơn bạn Jissak. – developer747