Пространство имен не найдено в MVC 3 Razor view - PullRequest
8 голосов
/ 29 ноября 2011

Я добавляю PagedList к своему представлению и неукоснительно следую этому учебнику .Я установил ссылку на PagedList с помощью Nuget, настроил свой контроллер следующим образом:

public ViewResult Index(int page = 1)
    {
        List<Part> model = this.db.Parts.ToList();
        const int pageSize = 20;
        return View(model.ToPagedList(page, pageSize));
    }

И написал свое видение со следующей моделью вверху

@model PagedList.IPagedList<RIS.Models.Part>

Когда я запускаю страницу, яполучить следующую ошибку

Compiler Error Message: CS0246: The type or namespace name 'PagedList' could not be found (are you missing a using directive or an assembly reference?)

Source Error:


Line 27:     
Line 28:     
Line 29:     public class _Page_Areas_Parts_Views_Part_Index_cshtml : System.Web.Mvc.WebViewPage<PagedList.IPagedList<RIS.Models.Part>> {

DLL-файл PagedList правильно загружается в мой контроллер, потому что, когда я убираю его из поля зрения, все работает как положено.Свойство CopyLocal установлено в «True», и я попытался включить пространство имен в Views \ Web.Config в моей конкретной области.Что еще я могу сделать, чтобы View увидел пространство имен?

Ответы [ 9 ]

15 голосов
/ 23 марта 2012

Мне нужно было добавить пространство имен в файл Views web.config.

Подробности в этом ТАК * сообщении :

Затем мне нужно было закрыть / повторноОткройте Visual Studio 2010 для его распознавания.Компиляция проекта не помогла (web.config может быть прочитан только один раз при загрузке проекта).

4 голосов
/ 26 апреля 2012

У меня также была эта проблема при использовании сборки, для которой не было установлено значение «Копировать локально», после изменения свойств ссылки на сборку она работает как положено.

2 голосов
/ 24 октября 2016

Сначала извините за мой ужасный английский. В моем случае я использую MVC5 в Visual Studio Community 2015 и решил проблему следующим образом:

Сначала я удаляю кеш Visual Studio и кеш NuGet:

  • Visual studio - перейдите в% LocalAppData% \ Microsoft \ WebsiteCache и удалите все папки.
  • Nuget - здесь

После того, как я использую консоль диспетчера пакетов, чтобы удалить PagedList.MVC, затем удалите PagedList и затем заново установите их, как показано ниже:

  • uninstall-package PagedList.mvc
  • Пакет удаления пакета PagedList
  • install-package PagedList
  • install-package PagedList.mvc

Я помогаю

2 голосов
/ 16 июля 2013

В моем случае, в соответствии с консолью диспетчера пакетов, мой проект имел предыдущую ссылку на PagedList, однако он не отображался в ссылках на мои проекты в обозревателе решений.

Решением для меня было использованиеконсоль диспетчера пакетов, чтобы удалить PagedList.MVC, затем удалить PagedList и затем заново установить их, как показано ниже:

  • uninstall-package PagedList.mvc
  • uninstall-package PagedList
  • install-package PagedList
  • install-package PagedList.mvc

После этого все было хорошо.

0 голосов
/ 16 февраля 2016

В моем случае я должен настроить его в .cshtml, .cs и в web.config

.cshtml

@model PagedList.IPageList<namespace.model>
@using PagedList.Mvc;

Web.Config

<configSections>
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
  <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
  <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup> 

.cs

using PagedList;

Надеюсь, это поможет

0 голосов
/ 29 марта 2013

В моем случае ошибка была связана с PagedList.MVC, и мне пришлось также установить:

notтолько PagedList.

0 голосов
/ 27 июля 2012

К вашему сведению, для кого-то еще с той же проблемой, что и у меня здесь, он остановился на контроллере "using PagedList;" для меня (это было правильно), однако проблема, с которой я столкнулся, была в web.config представления, я добавил ссылку на пространство имен «PageList» - которая была написана неправильно! (Должен был быть PagedList - обратите внимание на 'd').

0 голосов
/ 29 ноября 2011

Что-то не так с моим общим проектом.Я создал новый проект и скопировал важные элементы, и теперь все работает.Я совсем не уверен, что не так с моим первоначальным проектом.

0 голосов
/ 29 ноября 2011

Мне всегда приходилось импортировать MvcPaging в мои представления, чтобы использовать PagedList.Но я использовал библиотеку до Nuget, поэтому я не знаю, как могли измениться пространства имен.В представлении веб-форм VB.NET я использовал <%@ Import Namespace="MvcPaging" %>

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