10

我可以在任何控制器中使用WebGrid ,例如:

var grid = new WebGrid(emailsFetched, columnNames);

为此,我必须在我的 ASP.NET MVC 项目中添加一个引用System.Web.Helpers

但是当我尝试直接在视图中使用这个网络网格时(以避免控制器中的实例化和其他设置)它说: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>

必须在 web 配置中添加,在system.web部分下,带有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 回答