Dato il metodo di estensione seguente stringaPerché il metodo di estensione non è stato trovato in MVC4 Razor View?
economiconamespace JHS.ExtensionMethods
{
public static class StringExtensions
{
public static string ToUSAPhone(this String str)
{
return String.Format("{0:(###) ###-####}", Double.Parse(str));
}
}
}
Un @using stato aggiunto alla visualizzazione MVC4 Razor
@using JHS.ExtensionMethods;
e il seguente valore di stringa chiama il metodo di estensione
@Model.producer.phone.ToUSAPhone()
che restituisce il seguente errore
'string' does not contain a definition for 'ToUSAPhone'
Ho anche provato a inserire lo spazio dei nomi nel web.config della cartella/Views e ricevere lo stesso errore.
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Optimization"/>
<add namespace="System.Web.Routing" />
<add namespace="JHS.ExtensionMethods"/>
</namespaces>
</pages>
Ho verificato il metodo di estensione funziona mettendo la stessa chiamata in una classe C#
string test=producer.phone.ToUSAPhone();
Sembra che il riferimento al metodo di estensione non è disponibile nella vista MVC4 Razor ma posso' t capire perché?
Potrebbe mostrare qualche altro codice della vista? Potresti avere alcuni errori di sintassi. Sei anche sicuro che 'phone' sia di tipo' stringa' e non 'nullo'? –
Nota a margine: l'analisi di un numero, che è * per definizione * intero, in un 'doppio 'è solo * insane * ... –
Seconda nota: il punto e virgola non è necessario dopo il clausole' @ using'. –