10

次のような任意のコントローラーでWebGridを使用できます。

var grid = new WebGrid(emailsFetched, columnNames);

このために、ASP.NETMVCプロジェクトに参照を追加する必要がありましSystem.Web.Helpersた。

しかし、このWebグリッドをビューで直接使用しようとすると(コントローラーでのインスタンス化やその他の設定を回避するため)、次のように表示されますThe type or namespace 'WebGrid' cannot be found。わかりました、ここにも参照を追加しようとしました:

@using System.Web.Helpersしかし、これは別の問題を投げます:

There is no build provider registered for the extension '.cshtml'. You can register one in the <compilation><buildProviders> section in the machine.config or web.config. Make sure is has a BuildProviderAppliesToAttribute attribute which includes the value 'Web' or 'All'.

これはかなり奇妙です...WebGridを使用していて、cshtmlビューで何も宣言する必要がないネット上の例を十分に見てきました...

これを解決する方法を教えてください。または、なぜこの非常に醜い問題に遭遇するのですか?

4

3 に答える 3

24

最後に、私はこれに気付くことができました:

<assemblies> <add assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> </assemblies>

次のようになるようにsystem.web、webconfigのセクションの下にタグを付けて追加する必要があります。compilation

<system.web>
    <compilation debug="true" targetFramework="4.0">
        <assemblies>
            <add assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        </assemblies>
    </compilation>
</system.web>
于 2012-06-15T00:02:32.063 に答える
8
于 2013-11-03T10:00:47.930 に答える
0

この問題に遭遇しました。本当に信用できませんが、以前のバージョンをアンインストールし、Nugetから最新バージョンのMicrosoft ASP.NET MVC4を再インストールしましたが、問題はありません。これが他の誰かに役立つことを願っています。すべての解決策を試しましたが、うまくいったのはこれだけでした。http://forums.asp.net/t/1823940.aspx?MVC4+WebGrid+problem+in+View+Razor+

于 2015-10-12T23:00:15.397 に答える