Ошибка 1 Не удалось найти тип или имя пространства имен «Контроллер» (отсутствует директива using или ссылка на сборку?) - PullRequest
12 голосов
/ 17 января 2012

Когда я пытаюсь собрать проект в asp.net mvc3.Появилось 27 ошибок, говорящих о том, что связанные с mvc классы не существуют:

Вот пример одного из них:

Error   1   The type or namespace name 'Controller' could not be found (are you missing a using directive or an assembly reference?)    C:\Documents and Settings\hhhhhhhh\my documents\visual studio 2010\Projects\MvcApplication1\MvcApplication1\Controllers\HomeController.cs   10  35  MvcApplication1

UPDATE

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace MvcApplication2.Controllers
{
    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            ViewBag.Message = "Welcome to ASP.NET MVC!";

            return View();
        }

        public ActionResult About()
        {
            return View();
        }
    }
}

Ошибки:

Error   1   The type or namespace name 'Controller' could not be found (are you missing a using directive or an assembly reference?)    c:\documents and settings\hhhhhhhh\my documents\visual studio 2010\Projects\MvcApplication2\MvcApplication2\Controllers\HomeController.cs   9   35  MvcApplication2

Error   2   The type or namespace name 'ActionResult' could not be found (are you missing a using directive or an assembly reference?)  c:\documents and settings\hhhhhhhh\my documents\visual studio 2010\Projects\MvcApplication2\MvcApplication2\Controllers\HomeController.cs   11  16  MvcApplication2


Error   3   The name 'ViewBag' does not exist in the current context    c:\documents and settings\hhhhhhhh\my documents\visual studio 2010\Projects\MvcApplication2\MvcApplication2\Controllers\HomeController.cs   13  13  MvcApplication2


Error   4   The name 'View' does not exist in the current context   c:\documents and settings\hhhhhhhh\my documents\visual studio 2010\Projects\MvcApplication2\MvcApplication2\Controllers\HomeController.cs   15  20  MvcApplication2


Error   5   The type or namespace name 'ActionResult' could not be found (are you missing a using directive or an assembly reference?)  c:\documents and settings\hhhhhhhh\my documents\visual studio 2010\Projects\MvcApplication2\MvcApplication2\Controllers\HomeController.cs   18  16  MvcApplication2


Error   6   The name 'View' does not exist in the current context   c:\documents and settings\hhhhhhhh\my documents\visual studio 2010\Projects\MvcApplication2\MvcApplication2\Controllers\HomeController.cs   20  20  MvcApplication2

Ответы [ 6 ]

21 голосов
/ 26 февраля 2012

Вам нужно будет добавить System.Web.Mvc к ссылкам вашего проекта.

  1. Щелкните правой кнопкой мыши на ссылке
  2. Нажмите «Добавить ссылку ...»
  3. Сборки> Каркас
  4. Поиск сборок ( Ctrl + E ) для System.Web.Mvc (вероятно, у вас будет больше: версия 2/3/4)
8 голосов
/ 23 ноября 2014

Сегодня у меня ошибка того же типа. У меня была установлена ​​версия 3 MVC, и проект выдал ошибку, ранее выполнялся без ошибок. Сегодня я сделал автоматическое обновление окон. В этом обновлении MVC версии 3 обновление было загружено и установлено автоматически. Таким образом, ссылка на MVC версии 3, которая была добавлена ​​ранее в моем проекте, больше не действительна после установки обновления Windows. Итак, я удалил эту ссылку и добавил ту же ссылку. Это исправило мою ошибку. :)

4 голосов
/ 17 января 2012

Удалить using System.Web.Mvc.Controller;. Предложение using используется для определения пространств имен, а не классов:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace Controllers
{
    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            return View();
        }

        public ActionResult About()
        {
            return View();
        }
    }
}

Также убедитесь, что в вашем проекте указана сборка System.Web.Mvc.

Еще одна вещь, с которой нужно быть осторожным, это ваше пространство имен. Я вижу, что вы используете namespace Controllers вместо namespace AppName.Controllers. Убедитесь, что в вашем проекте не определено namespace Controller (без s), которое может конфликтовать с классом Controller, который вы пытаетесь использовать здесь.

1 голос
/ 08 декабря 2015

Кажется, у вас есть тестовый проект в решении.Есть два способа устранения этих ошибок

1) Исключить проект модульного теста из решения.

2) Вам просто нужно добавить ссылку на ваш проект MVC в тестовый проект.Перейдите к проекту модульного тестирования> Щелкните правой кнопкой мыши на ссылке> нажмите на ссылку Добавить ссылку> Нажмите на вкладку "Проекты"> Добавить ссылку на проект

Вот, пожалуйста, *

1 голос
/ 11 марта 2015

Работаете ли вы со старым проектом фреймворка MVC (1,2,3 ..) в новой версии Visual Studio (VS 2013, VS 2015)?

Если это так, пожалуйста, прочитайте это решение: Как открыть старый проект MVC в Visual Studio 2012 или Visual Studio 2013?

0 голосов
/ 16 марта 2015

Вы получите это в Add Reference-> Extentions -> System.Web.Mvc

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