Html Helper personalizzato non sta diventando disponibile in View (Razor / Asp.Net MVC3)

asp.net-mvc asp.net-mvc-3 c# html-agility-pack html-helper

Domanda

Sto cercando di implementare un Sanitizer HTML Whitelist utilizzando HtmlAgilityPack . Voglio creare un helper HTML riutilizzabile che mi permetta di usarlo. Ho altri helper HTML personalizzati che sto usando che funzionano bene, ma per qualche motivo questo non funzionerà. Ogni volta che provo a chiamarlo da una vista non è possibile trovare il metodo Sanitize. La chiamata che sto cercando di fare è in una vista parziale e assomiglia a questa:

@Html.Raw(Html.Sanitize(Model.Body))

La mia classe Helper Html:

@Html.Raw(Html.Sanitize(Model.Body))

I crediti per la maggior parte di questo codice vanno alla risposta in questo post .

Cose che ho già controllato:

  1. Lo spazio dei nomi è stato definito correttamente nel file Web.Config. (Lo so anche perché gli altri nel namespace funzionano già)
  2. Ho fatto una costruzione pulita del progetto.
  3. Visual Studio 2010 riavviato.

Pensieri sul perché non riesco a chiamare il metodo dalla classe?

Risposta accettata

Non sembra che tu abbia esteso correttamente HtmlHelper.

Ti manca la seguente nella tua definizione di funzione:

public static MvcHtmlString Sanitize(this HtmlHelper helper, string input)

Dai un'occhiata a questo post su Utilizzo delle estensioni di classe per semplificare il codice con UrlHelper




Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché