Html.RenderPartial ให้ข้อผิดพลาดโอเวอร์โหลดแปลก ๆ หรือไม่?


103

ฉันสร้างหน้าทดสอบบางส่วนชื่อ_Test.cshtmlและวางไว้ในไดเร็กทอรีเดียวกับมุมมองของฉันที่จะเรียกมันนี่คือ:

<div>hi</div>

และในมุมมอง cshtml การเรียกฉันเพียงแค่ใส่:

@Html.RenderPartial("_Test")

ซึ่งทำให้ฉันมีข้อผิดพลาด:

CS1502: วิธีการโอเวอร์โหลดที่ดีที่สุดตรงกับ 'System.Web.WebPages.WebPageExecutingBase.Write (System.Web.WebPages.HelperResult)' มีอาร์กิวเมนต์ที่ไม่ถูกต้อง

ฉันได้ลองเส้นทางแบบเต็มด้วยผลลัพธ์เดียวกัน

ฉันงงมากว่าทำไมถึงทำแบบนี้ฉันคิดว่าฉันพลาดอะไรง่ายๆไป?

คำตอบ:


190

คุณได้รับข้อผิดพลาดนี้เนื่องจากHtml.RenderXXXผู้ช่วยเหลือส่งคืนความว่างเปล่า - พวกเขาไม่มีอะไรจะกลับมาเพราะพวกเขากำลังเขียนสิ่งต่างๆเพื่อตอบกลับโดยตรง คุณควรใช้สิ่งนี้:

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

นอกจากนี้ยังมี Html ผู้ช่วยบางส่วนซึ่งจะทำงานร่วมกับไวยากรณ์ของคุณ แต่ฉันไม่แนะนำให้ใช้เว้นแต่คุณจะต้องทำเนื่องจากประสิทธิภาพ (ก่อนอื่นจะประกอบด้วยการดูบางส่วนเป็นสตริงจากนั้นมุมมองหลักจะทำให้เป็นการตอบสนอง * ).

* สิ่งนี้ไม่เป็นความจริงทั้งหมดพวกเขากำลังแสดงผลใน ViewContext.Writer และเมื่อแสดงผลและประกอบทั้งหน้าแล้วทุกอย่างจะตอบสนอง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.