错误1找不到类型或命名空间名称“Controller”(您是否缺少using指令或程序集引用?)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了错误1找不到类型或命名空间名称“Controller”(您是否缺少using指令或程序集引用?)相关的知识,希望对你有一定的参考价值。

当我尝试在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 Settingshhhhhhhhmy documentsvisual studio 2010ProjectsMvcApplication1MvcApplication1ControllersHomeController.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 settingshhhhhhhhmy documentsvisual studio 2010ProjectsMvcApplication2MvcApplication2ControllersHomeController.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 settingshhhhhhhhmy documentsvisual studio 2010ProjectsMvcApplication2MvcApplication2ControllersHomeController.cs   11  16  MvcApplication2


Error   3   The name 'ViewBag' does not exist in the current context    c:documents and settingshhhhhhhhmy documentsvisual studio 2010ProjectsMvcApplication2MvcApplication2ControllersHomeController.cs   13  13  MvcApplication2


Error   4   The name 'View' does not exist in the current context   c:documents and settingshhhhhhhhmy documentsvisual studio 2010ProjectsMvcApplication2MvcApplication2ControllersHomeController.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 settingshhhhhhhhmy documentsvisual studio 2010ProjectsMvcApplication2MvcApplication2ControllersHomeController.cs   18  16  MvcApplication2


Error   6   The name 'View' does not exist in the current context   c:documents and settingshhhhhhhhmy documentsvisual studio 2010ProjectsMvcApplication2MvcApplication2ControllersHomeController.cs   20  20  MvcApplication2
答案

您需要将System.Web.Mvc添加到项目引用中。

  1. 右键单击References
  2. 点击“添加参考...”
  3. 装配>框架
  4. 搜索程序集(Ctrl + E)为System.Web.Mvc(你可能会有更多:版本2/3/4)
另一答案

今天我遇到了同样的错误。我安装了MVC版本3并且项目出错,以前运行时没有错误。我今天所做的是,我已经自动进行了Windows更新。在该更新中,下载并自动安装MVC版本3更新。因此,在我的项目之前添加的MVC版本3引用在安装Windows更新后不再有效。所以,我删除了该引用并添加了相同的引用。这解决了我的错误。 :)

另一答案

删除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类冲突。

另一答案

您是否在新版Visual Studio(VS 2013,VS 2015)上运行旧的MVC(1,2,3 ..)框架项目?

如果是这样,请阅读此解决方案:How do I open an old MVC project in Visual Studio 2012 or Visual Studio 2013?

另一答案

看来你在解决方案中有测试项目。有两种方法可以解决这些错误

1)从解决方案中排除单元测试项目。

2)您只需要将MVC项目的引用添加到测试项目中。转到单元测试项目>右键单击引用>单击添加引用>单击项目选项卡>添加项目引用

干得好 !!!

另一答案

你会在Add Reference-> Extentions -> System.Web.Mvc得到这个

以上是关于错误1找不到类型或命名空间名称“Controller”(您是否缺少using指令或程序集引用?)的主要内容,如果未能解决你的问题,请参考以下文章

在构建过程中出现错误“找不到类型或命名空间名称”

找不到类型或命名空间名称“异步”[重复]

找不到类型或命名空间名称“DbContext”[关闭]

在 Xamarin Studio 中找不到类型或命名空间名称“页面”

错误1找不到类型或命名空间名称“Controller”(您是否缺少using指令或程序集引用?)

错误 CS0246:找不到类型或命名空间名称“Player”(您是不是缺少 using 指令或程序集引用?) Unity [关闭]