应该可以在这里使用泛型并传递Model的类类型。但是Visual Studio 2008不接受这一点:
<%@ Page Inherits="System.Web.Mvc.ViewPage(of IEnumerable(of MyNamespace.MyClass))" %>
我收到以下验证错误(在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 - 但这不应该影响问题。
以下是视图的一些截图&amp;控制器,我希望有人看到发生了什么(TestClass是一个带ID和Name属性的简单类):
根据下面的Maik Koster answer,解决方案是:
现在,ASP.NET MVC项目中的视图页面指令有一个继承属性,如下所示:
<%@ Page Inherits="System.Web.Mvc.ViewPage" %>
答案 0 :(得分:5)
我遇到了同样的问题,它或者是由于缺少引用引起的,或者是由于使用了存储库模式并且已经实现了IDisposable
。
对于后一种情况,我添加了名称空间:System.Data.Objects
和System.Data.Objects.DataClasses
。接下来,我添加了System.Data.Entity
作为参考,并使用
<add assembly="System.Data.Entity, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
这样做后,这个奇怪的错误就消失了。所以你可能想检查你的参考文献。
答案 1 :(得分:2)
这样做:
<%@ Page Inherits="System.Web.Mvc.ViewPage<IEnumerable<MyNamespace.MyClass>>" %>
答案 2 :(得分:1)
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<MyProject.Helpers.PaginatedList<MyProject.Models.Person>>" %>
希望你有。
答案 3 :(得分:0)
这可能是visual studio intellisense中的bug。我有同样的东西,继承成员在设计器中有下划线但我没有运行时异常。
答案 4 :(得分:0)
我在MVC1中遇到了同样的错误。我更改了模型的命名空间,忘了更新视图。我更新了视图,错误消失了。