Câu trả lời:
Html.Partial("MyView")
Hiển thị chế độ xem "MyView" thành MvcHtmlString
. Nó tuân theo các quy tắc tiêu chuẩn để tra cứu chế độ xem (tức là kiểm tra thư mục hiện tại, sau đó kiểm tra Shared
thư mục).
Html.RenderPartial("MyView")
Cũng giống như Html.Partial()
, ngoại trừ việc nó ghi đầu ra của nó trực tiếp vào luồng phản hồi. Điều này hiệu quả hơn, vì nội dung dạng xem không được lưu vào bộ nhớ đệm. Tuy nhiên, vì phương thức không trả về bất kỳ đầu ra nào nên @Html.RenderPartial("MyView")
sẽ không hoạt động. Bạn cần phải quấn các cuộc gọi trong một khối mã thay vì: @{Html.RenderPartial("MyView");}
.
RenderPage("MyView.cshtml")
Hiển thị chế độ xem được chỉ định (được xác định bằng đường dẫn và tên tệp chứ không phải theo tên chế độ xem) trực tiếp đến luồng phản hồi, chẳng hạn như Html.RenderPartial()
. Bạn có thể cung cấp bất kỳ mô hình nào bạn thích cho chế độ xem bằng cách đưa nó làm tham số thứ hai
RenderPage("MyView.cshtml", MyModel)
@Html.Partial("MyView")
so với@{Html.RenderPartial("MyView");}
RenderPage
không? Tôi muốn lồng một trang khác bằng cách chỉ định một tham số truy vấn cụ thể, tham số này sẽ lọc dữ liệu trong trang đó và ngoài ra, loại bỏ bố cục của chính nó.
tôi thích
@RenderPage("_LayoutHeader.cshtml")
Kết thúc
@{ Html.RenderPartial("_LayoutHeader"); }
Chỉ vì cú pháp dễ hơn và dễ đọc hơn. Ngoài ra, dường như không có bất kỳ sự khác biệt nào về chức năng.
CHỈNH SỬA: Một lợi thế của RenderPartial là bạn không cần phải chỉ định toàn bộ đường dẫn hoặc phần mở rộng tệp, nó sẽ tự động tìm kiếm các địa điểm phổ biến.
RenderPage
vì cú pháp.
Các renderPartial phương pháp không trả lại đánh dấu HTML giống như hầu hết các phương pháp helper khác. Thay vào đó, nó viết nội dung trực tiếp vào luồng phản hồi, đó là lý do tại sao chúng ta phải gọi nó như một dòng hoàn chỉnh của C #, sử dụng dấu chấm phẩy.
Điều này hiệu quả hơn một chút so với việc đệm HTML được hiển thị từ chế độ xem một phần, vì dù sao nó cũng sẽ được ghi vào luồng phản hồi. Nếu bạn thích một cú pháp nhất quán hơn, bạn có thể sử dụng phương thức Html.Partial , phương thức này giống hệt như phương thức RenderPartial , nhưng trả về một đoạn HTML và có thể được sử dụng như @ Html.Partial ("Sản phẩm", p).
@RenderPages()
Ở trên không hoạt động trong ASP.NET MVC. Nó chỉ hoạt động trong các Trang web.
@Html.Partial("_Footer")
Bạn sẽ cần sử dụng những điều trên trong ASP.NET MVC.