部分ビューで文字列拡張メソッドを使用しようとしています。私は次のエラーを取得する:ここで部分ビュー内で拡張メソッドを使用できません
'string' does not contain a definition for 'TruncateAtCharacter'
は、拡張メソッドです:this previous questionによると
namespace PCCMS.Core.Libraries {
public static class Extensions {
public static string TruncateAtCharacter(this string input, int length) {
if (String.IsNullOrEmpty(input) || input.Length < length)
return input;
return string.Format("{0}...", input.Substring(0, length).Trim());
}
}
}
私はしかし、私はこれを行っていると私はまだ受け、web.configファイルに名前空間を追加する必要があります同じエラーメッセージ。しかし、私は拡張メソッドのためにintellisense得るのですが、何が奇妙ですか?
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="PCCMS.Core.Libraries.ClientWebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<!-- Other namespaces... -->
<add namespace="PCCMS.Core.Libraries" />
</namespaces>
</pages>
</system.web.webPages.razor>
誰でもこの理由を説明できますか?
おかげ
申し訳ありませんが、私は部分的に@usingを追加しようとしましたが、動作しませんでした。名前空間宣言を領域内のweb.configにもプロジェクトルート内にも追加していません。 –
私はあなたのコードをコピーしました。これは、ビューで@using文を使用する場合にのみ機能します。どちらの設定でも名前空間を参照するだけで何もできません。 –
私は、Viewディレクトリのweb.configとView自体に@using文を使用しないで動作させました。私はsystem.web.webPages.razor/namespaces要素を使用しています。私は自分のルート設定でその要素を持っていなかったし、デフォルトのsystem.web.pagesにも文を追加したときにパーサを混乱させた。 Views web.configに入れてみてください。 –