2012-03-26 12 views
6

In ASP.NET MVC3 Sto tentando di impostare la classe css che il metodo helper dell'errore di convalida imposta. (Non this question, la risposta accettata solo ADAD la classe, voglio sovrascriverlo completamente.) Guardando la fonte MVC3 ho trovato la proprietà ValidationInputCssClassName nella classe HtmlHelper. È configurabile e memorizza il valore in un provider di archiviazione, se impostato. Il metodo get per la proprietà restituisce [il valore del provider] ?? [il nome della classe predefinito].Classe HtmlHelper in System.Web.Webpages.Html vs Namespace System.Web.Mvc

Ora se si digita semplicemente HtmlHelper.ValidationInputCssClassName (MSDN entry) nel codice del controller, si vedrà che si tratta di un campo statico di sola lettura. La ragione di ciò è che esistono due classi HtmlHelper, una è nello spazio dei nomi System.Web.Mvc e l'altra è nello spazio dei nomi System.Web.Webpages.Html. La proprietà System.Web.Webpages.Html.HtmlHelper.ValidationInputCssClassName (MSDN entry) può essere impostata, ma non sembra avere alcun effetto sul codice generato, non importa dove lo ho impostato.

Cosa mi manca? E qual è la differenza tra queste classi?

risposta

3

Non sono positivo, ma penso che System.Web.WebPages.Html sia per l'utilizzo di Web Forms ASP.net con Razor.

Dal ValidationInputCssClassName, ecc, sono tutti i campi di sola lettura, credo che l'unico modo che si sta per ottenere intorno a questo è di creare i propri metodi di estensione HtmlHelper modo da poter personalizzare questo comportamento.

Da MSDN:

Il namespace System.Web.WebPages contiene classi di base che vengono utilizzati per il rendering ed eseguire le pagine che sono costruiti utilizzando le pagine Web ASP.NET con la sintassi Razor.

+0

Sto usando Razor. La proprietà HtmlHelper nello spazio dei nomi Web.WebPages è chiaramente destinata a essere modificata da qualcosa. Roll-your-own è l'ultima risorsa, non voglio effettuare il porting degli aggiornamenti con ogni versione MVC! – Paul

+0

@Paul Sto parlando di WebForms con Razor. È solo un'ipotesi, ma è quello che sembra debba essere usato per. Pagine Razor di ASP.net WebForms. – Dismissile

3

Osservando la descrizione dello spazio dei nomi, sembra che uno di essi sia stato progettato per Razor e sia destinato all'uso con WebMatrix.

Riferimento: http://msdn.microsoft.com/en-us/library/gg549171(v=vs.99).aspx

anche:

Il namespace System.Web.Mvc contiene classi che vengono utilizzate per creare elementi HTML.

I tipi in questo spazio dei nomi sono nell'assembly System.Web.WebPages e sono identici ai tipi equivalenti nell'assembly System.Web.Mvc.

Riferimento: http://msdn.microsoft.com/en-us/library/system.web.mvc(v=vs.99).aspx

Problemi correlati