ASP.NET MVC - 为什么我的视图不能从System.Web.Mvc.ViewPage(T)正确继承

Rop*_*tah 3 generics asp.net-mvc inheritance

应该可以在这里使用泛型并传递Model的类类型.但是,Visual Studio 2008不接受此操作:

<%@ Page Inherits="System.Web.Mvc.ViewPage(of IEnumerable(of MyNamespace.MyClass))" %>
Run Code Online (Sandbox Code Playgroud)

我得到以下验证错误(在VS中加下划线): 'Context' is not a member of 'ASP._views___home___index__asp'

我收到以下运行时错误: BC30456: 'InitializeCulture' is not a member of 'ASP._views___home___index__asp'.

注意,我使用的是Visual Basic.NET - 但这不应该影响该问题.

以下是视图和控制器的一些截图,我希望有人看到发生了什么(TestClass是一个带ID和Name属性的简单类):

根据Maik Koster的 回答,解决方案是:

  1. 重新引用System.Web.Mvc(在GAC中使用它,返回本地副本)
  2. 从Controller重新创建视图.右键单击控制器操作 - >创建视图...并从那里进行修改

现在,ASP.NET MVC项目中的视图页面指令具有一个inherits属性,如下所示:

<%@ Page Inherits="System.Web.Mvc.ViewPage" %>
Run Code Online (Sandbox Code Playgroud)

小智 5

我有同样的问题,它或者是由缺少的引用引起的,或者是由使用存储库模式引起的并且已经实现了IDisposable.

对于后一种情况,我添加了名称空间:System.Data.ObjectsSystem.Data.Objects.DataClasses.接下来我添加了System.Data.Entity作为参考,并将其添加到web.config中的程序集列表中

<add assembly="System.Data.Entity, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
Run Code Online (Sandbox Code Playgroud)

这样做后,这个奇怪的错误就消失了.所以你可能想检查你的参考文献.