は@usingステートメントがMVC4 Razor Viewに拡張メソッドが見つからないのはなぜですか?
@using JHS.ExtensionMethods;
MVC4かみそりビューに加え、次の文字列値が
@Model.producer.phone.ToUSAPhone()
た拡張メソッドを呼び出した次の文字列拡張メソッド
namespace JHS.ExtensionMethods
{
public static class StringExtensions
{
public static string ToUSAPhone(this String str)
{
return String.Format("{0:(###) ###-####}", Double.Parse(str));
}
}
}
を考えます次のエラーが発生します。
'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かみそりビューでは利用できないようですが、私はすることができますどうして?
ビューのコードをさらに表示できますか?構文エラーがあるかもしれません。 'phone'は' string'型で、 'null'でもないと確信していますか? –
サイドノート:*整数で定義された数値を 'double'に解析すると、ちょうど*狂気になります。... –
2番目のメモ:' @ using' clausuleの後にセミコロンは必要ありません。 –