SORU
17 Ocak 2011, PAZARTESİ


Jilet kullanarak açıklayıcı görünümlerinden MVC HtmlHelper uzantıları

3 RTM MVC bir proje için App_Code klasörüne Jilet Bildirge yardımcı oluşturmak için çalışıyordum.

Karşılaştığım sorun MVC HtmlHelper uzantıları, ActionLink gibi, mevcut değildir. Bu derlenmiş yardımcıları System.Web.WebPages.HelperPage, kaynaklanıyor çünkü Ve onu sunar ama Html bir özelliği, System.Web.Mvc.HtmlHelper yerine kendi türü System.Web.WebPages.HtmlHelper.

Alıyordum hata türden bir örnektir:

'Sistem.Web.Mvc.'Değil HtmlHelper 'ActionLink'için bir tanım içermiyor ve hiç uzatma yöntemi 'ActionLink' türünde bir ilk bağımsız değişken kabul 'Sistem.Web.Mvc.HtmlHelper' olabilir (bir kullanarak eksik bulundu emrini veya bir derleme başvurusu?)

Benim için de tek çözüm kendi HelperPage oluşturmak ve Html özelliği geçersiz kılmak için:

using System.Web.WebPages;

public class HelperPage : System.Web.WebPages.HelperPage 
{
    // Workaround - exposes the MVC HtmlHelper instead of the normal helper
    public static new HtmlHelper Html
    {
        get { return ((System.Web.Mvc.WebViewPage) WebPageContext.Current.Page).Html; }
    }
}

Ben her zaman yardımcı üstündeki şunları yazmak zorunda:

@inherits FunnelWeb.Web.App_Code.HelperPage
@using System.Web.Mvc
@using System.Web.Mvc.Html

@helper DoSomething()
{
    @Html.ActionLink("Index", "Home")
}

MVC 3, ya da ben bu kadar zor olması gerekiyordu ben yanlış bir şey yapıyor?

CEVAP
17 Ocak 2011, PAZARTESİ


Bu soru için Marcind's answer bir göz atın. Yaşadıkların App_Code klasöründe Bildirge manzarası koyarak bir sınırlama var.

App_Code içinde senin yardımcıların koyarak çalışır ama bazı kısıtlamalar vardır bazı MVC senaryolar etkisi (için örnek: standart MVC herhangi bir erişim Html. yardımcıları)

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • gadgetgal38

    gadgetgal38

    9 HAZİRAN 2009
  • Kindness

    Kindness

    23 Ocak 2006
  • ShoSho

    ShoSho

    20 Ocak 2010