Добавить свой собственный файл класса в ASP.NET MVC, и на него нельзя ссылаться? - PullRequest
1 голос
/ 18 августа 2011

В настоящее время я застрял, пытаясь добавить свой собственный файл класса в проект ASP.NET MVC, чтобы мой контроллер мог ссылаться на него.Но Visual Studio 2010 всегда жалуется на то, что «Тип или имя« Продукты »не могут быть найдены (отсутствует директива об использовании или ссылка на сборку?)

Я не уверен, куда поместить файл моего класса, и попытался добавить»класс к каталогу Models или Controllers, и он тоже не будет работать. Мой класс находится в правильном пространстве имен, и я ссылался на пространство имен Models в моем контроллере. Это могло быть что-то очевидное, но я не мог заставить его работать(

Ответы [ 5 ]

6 голосов
/ 18 августа 2011

Убедитесь, что свойство «Build Action» этого файла установлено в «Compile» в Visual Studio.Возможно, когда вы первоначально добавили файл, вы добавили его в расположение или добавили его в качестве типа файла, который не устанавливал действие сборки автоматически.

0 голосов
/ 03 мая 2012

У меня была такая же проблема при добавлении некоторых файлов .cs служебного класса в мой новый проект MVC. Я работал в основном над проектами веб-сайтов VS 2010, которые компилируются не так Проекты веб-приложений (WAP), такие как проект MVC 3.

Просто, чтобы уточнить ответ Джейкоба. В обозревателе решений VS: щелкните правой кнопкой мыши файл класса .cs и выберите диалоговое окно «Свойства», а затем установите свойство: «Создать действие для компиляции». Это заставит код скомпилироваться при сборке проекта.

HTH, LA Guy

0 голосов
/ 18 августа 2011

Судя по комментарию к другому ответу, вы пытаетесь добавить утилиту или вспомогательный класс.Я предлагаю вам поместить его в папку «Helpers» в корне проекта.

Поэтому сначала добавьте папку «Helpers» в корень проекта.После этого у вас должна быть следующая структура (могут быть и другие папки):

[project]
  - Content
  - Helpers
  - Controllers
  - Views

Теперь добавьте новый класс в папку Helpers.Вызовите этот класс ProductsHelper (в диалоговом окне «Добавить новый элемент» обязательно укажите ProductsHelper.cs, так как он запрашивает имя file ).

Теперь взгляните на новый ProductsHelper.csфайл.Скопируйте пространство имен, найденное в указанном файле, для использования в контроллере.

Теперь добавьте директиву using в верхней части вашего контроллера, которая выглядит следующим образом:

using [copied namespace];

Иногда проектынастроены на использование пространств имен по умолчанию, которые не совпадают с именем проекта, и в этом случае пространство имен в вашем недавно добавленном файле классов может отличаться от того, что, как вы думали, вы должны добавить в качестве директивы using.Если вам интересно, что такое пространство имен по умолчанию для вашего проекта, вы можете увидеть его в свойствах проекта, на вкладке «Приложение», в текстовом поле «Пространство имен по умолчанию» (вы также можете изменить его здесь).

0 голосов
/ 18 августа 2011

Убедитесь, что пространство имен вашего класса правильное.

0 голосов
/ 18 августа 2011

Общее правило заключается в том, что бизнес-объекты идут в папку «Модели». Если он не работает, проект не настроен правильно. В контроллере, где вы хотели сослаться на объект Products, вы добавили ссылку на Models.Products?

Есть ли другие ошибки в списке? Иногда несколько ошибок в решении могут объединиться, чтобы создать что-то вроде этого.

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