1

.cshtml私はいくつかのファイルをResourcesフォルダーに保存したコンソールプロジェクトを持っています。これはnugetパッケージの.csファイルに組み込まれています。Razorgenerator.MsBuild

WebViewPage生成されたビューのビュー基本クラスを置き換える必要がありますが、pageBaseType="ConsoleApp.MyViewBase"オプション セットを使用して web.config ファイルを追加したり、さまざまな方法でファイルの場所を変更したりしても、他の方法は見つかりませんでした。

ビュー クラスは常に次のように生成されます。

public partial class _Resources_Index_cshtml : 
         System.Web.Mvc.WebViewPage<ConsoleApp.ModelClass> { ... }

すべてのファイルの先頭にディレクティブを追加せずに、すべてのビューに対してクラスをグローバルに構成する方法があることを願ってい.cshtmlます。

4

2 に答える 2

1

web.config最新のRazorGeneratorでは、ベースビューの設定が機能するようです。

したがって、RazorGenerator パッケージを更新して、次のようなものを に含めてみてくださいweb.config

<configSections>    
  <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
    <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
    <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
  </sectionGroup>
</configSections>

<system.web.webPages.razor>
  <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  <pages pageBaseType="WebApplication2.Views.BaseView2">
    <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" />        
    </namespaces>
  </pages>
</system.web.webPages.razor>

私の場合、古いプロジェクトにプリコンパイル (RazorGenerator.Mvc および RazorGenerator.MsBuild パッケージを使用) を追加していましたが、機能しませんでした。問題は、私がVersion=2.0.0.0自分のconfigSectionsプロジェクトに持っていて、それをに変更しなければならなかったことVersion=3.0.0.0です。

于 2015-12-07T09:23:52.227 に答える
0

誰かが役に立つと思ったら、私によるこれのためのnuget パッケージがあります。同じ Razorgenerator.MsBuild ですが、 に置き換えSystem.Web.Mvc.WebViewPageられていCustom.System.Web.Mvc.WebViewPageます。したがって、カスタム WebViewPage を使用する場合は、パッケージをインストールし、名前空間 Custom.System.Web.Mvc に WebViewPage という名前のクラスを追加します。お気に入り:

namespace Custom.System.Web.Mvc
{
    public abstract class WebViewPage<T>
    {
    ...
    }
}
于 2015-07-09T12:49:36.977 に答える