Html.RenderPartial cho tôi lỗi quá tải lạ?


103

Tôi đã tạo một trang một phần thử nghiệm có tên _Test.cshtml và đặt nó vào cùng thư mục với chế độ xem của tôi sẽ gọi nó, đây là:

<div>hi</div>

Và trong chế độ xem cshtml đang gọi, tôi chỉ cần đặt:

@Html.RenderPartial("_Test")

Điều này mang lại cho tôi lỗi:

CS1502: Đối sánh phương thức nạp chồng tốt nhất cho 'System.Web.WebPages.WebPageExecutingBase.Write (System.Web.WebPages.HelperResult)' có một số đối số không hợp lệ

Tôi cũng đã thử đường dẫn đầy đủ với kết quả tương tự.

Tôi rất bối rối không biết tại sao lại hành động theo cách này, tôi cho rằng mình đang thiếu một thứ gì đó đơn giản?

Câu trả lời:


190

Bạn nhận được lỗi này vì Html.RenderXXXngười trợ giúp trả về giá trị không có giá trị - họ không có gì để trả lại vì họ đang viết nội dung trực tiếp * để phản hồi. Bạn nên sử dụng chúng như thế này:

@{ Html.RenderPartial("_Test"); }

Ngoài ra còn có trình trợ giúp Html.Partial, sẽ hoạt động với cú pháp của bạn, nhưng tôi không khuyên bạn nên sử dụng nó trừ khi bạn phải làm vậy, vì hiệu suất (trước tiên nó soạn chế độ xem từng phần đã cho thành chuỗi, sau đó chế độ xem gốc đặt nó thành phản hồi * ).

* điều này không hoàn toàn đúng, chúng thực sự đang được hiển thị thành ViewContext.Writer và sau khi toàn bộ trang được kết xuất và soạn thảo, toàn bộ nội dung sẽ phản hồi

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.