web-dev-qa-db-ja.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 Settings\hhhhhhhh\my documents\visual studio 2010\Projects\MvcApplication1\MvcApplication1\Controllers\HomeController.cs   10  35  MvcApplication1

更新

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
12

追加する必要がありますSystem.Web.Mvcをプロジェクト参照に追加します。

  1. 参照を右クリック
  2. 「参照の追加...」をクリックします
  3. アセンブリ>フレームワーク
  4. アセンブリの検索(Ctrl+E) ために - System.Web.Mvc(おそらくもっと多くなるでしょう:バージョン2/3/4)
21
Eldad

今日、同じタイプのエラーが発生しました。 MVCバージョン3をインストールしましたが、プロジェクトでエラーが発生し、以前はエラーなしで実行されていました。今日私がやったことは、私は自動的にウィンドウズアップデートに行ったことです。その更新では、MVCバージョン3の更新が自動的にダウンロードおよびインストールされました。そのため、私のプロジェクトで以前に追加されたMVCバージョン3リファレンスは、Windows Updateのインストール後に無効になりました。 つまり、その参照を削除し、同じ参照を追加しました。これにより、エラーが修正されました。:)

8
Subhajit Ray

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アセンブリが参照されていることを確認してください。

注意すべきもう1つのことは、名前空間です。 namespace Controllersではなくnamespace AppName.Controllersを使用しているようです。プロジェクトのどこかでnamespace Controllersなし)が定義されていないことを確認してください。これは、ここで使用しようとしているControllerクラスと競合する可能性があります。

4
Darin Dimitrov

ソリューションにテストプロジェクトがあるようです。これらのエラーを解決するには2つの方法があります

1)単体テストプロジェクトをソリューションから除外します。

2)MVCプロジェクトの参照をテストプロジェクトに追加するだけです。単体テストプロジェクトに移動>参照を右クリック>参照を追加をクリック>プロジェクトタブをクリック>プロジェクト参照を追加

どうぞ !!!

1
Ashish Meshram

新しいバージョンのVisual Studio(VS 2013、VS 2015)で古いMVC(1,2,3 ..)フレームワークプロジェクトを実行していますか?

もしそうなら、plzはこのソリューションを読みます: Visual Studio 2012またはVisual Studio 2013で古いMVCプロジェクトを開く方法は?

1
Dudi