3

クラスライブラリプロジェクトRazorEngine3.2.0を使用しています。

次のSO質問に対する次の回答に従うことで、クラスライブラリ関連の問題を解決しました。Razorインテリセンスエラー:機能「拡張メソッド」はISO-2 C#言語仕様の一部ではないため、使用できません。

問題

@inheritsキーワードを使ってみます。ビュークラスの完全修飾名を記述するだけインテリセンスは機能します。継承しようとすると、 RazorEngine-Assemlby全体が解決されていないようです。RazorEngine.Templating.TemplateBase<T>

テンプレートは次のようになります。

@inherits RazorEngine.Templating.TemplateBase<ViewModels.PrintCatalogData>
<!DOCTYPE html>
<html>
<head>
...

実行時に機能します-インテリセンスだけが失敗します。

質問

インテリセンスがRazorEngine-Assemblyを認識するために必要なものは何ですか?

4

1 に答える 1

1

@inheritsは、完全修飾名を好まない可能性があります。名前空間RazorEngine.Templatingをweb.configに追加してから、完全修飾名をビューテンプレートから削除してみてください。

  <system.web.webPages.razor>
     <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc,    Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
     <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="Assemblies"/>
          <add namespace="RazorEngine.Templating"/>
          <add namespace="Resources"/>
        </namespaces>
     </pages>

于 2013-10-24T03:45:00.447 に答える