次の文字列拡張メソッドが与えられた場合
namespace JHS.ExtensionMethods
{
public static class StringExtensions
{
public static string ToUSAPhone(this String str)
{
return String.Format("{0:(###) ###-####}", Double.Parse(str));
}
}
}
@using ステートメントが MVC4 Razor ビューに追加されました
@using JHS.ExtensionMethods;
次の文字列値は拡張メソッドを呼び出します
@Model.producer.phone.ToUSAPhone()
次のエラーが発生します
'string' does not contain a definition for 'ToUSAPhone'
また、名前空間を /Views フォルダーの web.config に入れてみましたが、同じエラーが発生しました。
<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>
同じ呼び出しを C# クラスに入れて、拡張メソッドが機能することを確認しました。
string test=producer.phone.ToUSAPhone();
拡張メソッドへの参照は MVC4 Razor ビューでは利用できないようですが、理由がわかりませんか?