Html.RenderPartial bana garip bir aşırı yükleme hatası mı veriyor?


103

_Test.cshtml adlı bir deneme sayfası yaptım ve onu çağıracak benim görünümümle aynı dizine koydum, işte burada:

<div>hi</div>

Ve çağıran cshtml görünümünde basitçe şunu koyuyorum:

@Html.RenderPartial("_Test")

Bu bana şu hatayı veriyor:

CS1502: 'System.Web.WebPages.WebPageExecutingBase.Write (System.Web.WebPages.HelperResult)' için en iyi aşırı yüklenmiş yöntem eşleşmesinde bazı geçersiz bağımsız değişkenler var

Ben de aynı sonuçla tam yolu denedim.

Bunun neden bu şekilde davrandığı konusunda kafam çok karışık, sanırım basit bir şeyi kaçırıyorum?

Yanıtlar:


190

Bu hatayı alıyorsunuz çünkü Html.RenderXXXyardımcılar geçersiz döndüler - geri dönecek hiçbir şeyleri yok çünkü yanıt için doğrudan * şeyler yazıyorlar. Bunları şu şekilde kullanmalısın:

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

Ayrıca sözdiziminizle çalışacak Html.Partial yardımcısı da vardır, ancak bunu yapmanız gerekmedikçe, performans nedeniyle kullanmanızı önermem (önce kısmi görünümü dizeye oluşturur ve ardından üst görünüm onu ​​yanıt olarak verir * ).

* bu tamamen doğru değil, aslında ViewContext.Writer'da işleniyorlar ve tüm sayfa oluşturulduktan ve oluşturulduktan sonra her şey yanıta gidiyor

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.