ASP.NET MVC - Почему мое представление не наследуется должным образом из System.Web.Mvc.ViewPage (из T) - PullRequest
3 голосов
/ 12 мая 2009

Должно быть возможно использовать дженерики здесь и передать тип класса Модели. Однако это не принимается 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 - но это не должно повлиять на проблему.

Вот несколько скриншотов представлений и контроллеров, надеюсь, кто-нибудь увидит, что происходит (TestClass - простой класс со свойством ID и Name):

Решение, согласно Maik Koster ответ ниже:

  1. Повторная ссылка на System.Web.Mvc (была в GAC, вернулась к локальной копии)
  2. Повторно созданный вид из контроллера. Щелкните правой кнопкой мыши действие контроллера -> Создать представление ... и измените его оттуда

Теперь в представлениях в проекте ASP.NET MVC директива page имеет атрибут наследуется следующим образом:

<%@ Page Inherits="System.Web.Mvc.ViewPage" %>

Ответы [ 5 ]

5 голосов
/ 22 мая 2009

У меня была та же проблема, и она была вызвана отсутствующей ссылкой, или была вызвана использованием шаблона репозитория и реализацией IDisposable.

Для последнего сценария я добавил пространства имен: System.Data.Objects и System.Data.Objects.DataClasses. Затем я добавил System.Data.Entity в качестве ссылки, а также добавил его в список сборок в web.config, используя

<add assembly="System.Data.Entity, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>

После этого эта странная ошибка исчезла. Так что вы можете проверить ваши ссылки.

2 голосов
/ 12 мая 2009

Сделай так:

<%@ Page Inherits="System.Web.Mvc.ViewPage<IEnumerable<MyNamespace.MyClass>>" %>
1 голос
/ 12 мая 2009
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<MyProject.Helpers.PaginatedList<MyProject.Models.Person>>" %>

Надеюсь, вы получили.

0 голосов
/ 18 февраля 2011

У меня была такая же ошибка в MVC1. Я изменил пространство имен для моей модели и забыл обновить вид. Я обновил представление, и ошибки исчезли.

0 голосов
/ 07 января 2010

Это может быть ошибка в Visual Studio IntelliSense. У меня то же самое, что унаследованные члены подчеркнуты в конструкторе, но я не получил исключение времени выполнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...