SORU
18 Kasım 2010, PERŞEMBE


ASP.NET MVC: Razor Özel Html Yardımcıları

Ustura ile kullanıldığında Html Yardımcıları ile zorluk yaşıyorum. Dedi çokta iyi web formu ile MVC 2 görünümünde motor çalıştı. Ama jilet gibi değil. Zamanında aldığım hata:

Compiler Error Message: CS1502: The best overloaded method match for 'System.Web.WebPages.WebPageExecutingBase.Write(System.Web.WebPages.HelperResult)' has some invalid arguments

Source Error:


Line 1:  @using Wingspan.Web.Mvc;
Line 2:  @Html.IncrementalMenu(MenuBlock.Site)

Detaylı Derleyici Çıktı ortaya koyduğu Haritayı genişletilmesi:

d:\...\Views\Shared\MenuTop.cshtml(2,1): error CS1502: The best overloaded method match for 'System.Web.WebPages.WebPageExecutingBase.Write(System.Web.WebPages.HelperResult)' has some invalid arguments
d:\...\Views\Shared\MenuTop.cshtml(2,7): error CS1503: Argument 1: cannot convert from 'void' to 'System.Web.WebPages.HelperResult'

Bu jilet Yardımcısı, İncrementalMenu, dönen benim void web formu motoru manzarası MVC 2'de gayet iyi çalışıyor) sevmez o bana gösterir.

Kod olsa da, Derleme zamanında (@Html.hatalar alıyorum(...) İncrementalMenu) kırmızı ise aşağıdaki ileti ile altı çizili:

Cannot implicitly convert type 'void' to 'object'

İncrementalMenu Kanat genişliğine sahiptir.Web.Mvc ad. Bu imza şu şekildedir:

public static void IncrementalMenu(this HtmlHelper html, MenuBlock menuBlock)
{
    // Uses an HtmlTextWriter to render a menu from the sitemap
}

Eğer sorunun ne olduğunu biliyorum eğer bina yerle bir edildi

PS:

MenuBlock parametre sadece menü oluşturma nasıl tanımlayan bir numaralandırma. Bu gayet iyi gibi bu konuda kimseye kafanı takma.

CEVAP
18 Kasım 2010, PERŞEMBE


Yardımcı böyle diyebilirsiniz:

@{ Html.IncrementalMenu(MenuBlock.Site); }

WebForms sözdizimi

<% Html.IncrementalMenu(MenuBlock.Site); %>

Sadece senin yöntemini çağırın, ve dönüş değeri varsa, eğer orada () göz ardı edilir.

Bu kodu dönüş değeri bekliyor, ve html akışına dönüş değeri yazıyor:

@Html.YourHelper()

Sözdizimi Webforms:

<%: Html.YourHelper() %>

Aynı sonucu değer != İHtmlString:

<%= Server.HtmlEncode(Html.YourHelper()) %>

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • hanksranger

    hanksranger

    6 EKİM 2009
  • Lamarr Wilson

    Lamarr Wilso

    27 Aralık 2008
  • Titan Lee Hai

    Titan Lee Ha

    14 Temmuz 2008