rksoftware

Visual Studio とか C# とかが好きです

ASP.NET MVC にコントローラーを追加する(Razorページ)

以前に ASP.NET MVC に別アセンブリでコントローラーを追加する記事を書きました。

概要としては

  • ASP.NET MVC プロジェクトにルート設定があり
  • そのルート設定に合ったコントローラークラスを別アセンブリ上に作成
  • 実行環境にアセンブリを配置

というものでした。
今回は、その追加するコントローラーで View に Razore ページを使ってみます。

■ コントローラークラス

using System.Web.Mvc;

namespace WebApplication2.Controllers
{
    public class Home2Controller : Controller
    {
        public ActionResult Index()
        {
            return View();
        }

        public ActionResult About()
        {
            ViewBag.Message = "Your application description page.";

            return View();
        }

        public ActionResult Contact()
        {
            ViewBag.Message = "Your contact page.";

            return View();
        }
    }
}

.cshtml

@{
    ViewBag.Title = "About";
}
<h2>@ViewBag.Title.</h2>
<h3>@ViewBag.Message</h3>

<p>Use this area to provide additional information.</p>

■ Razor ページの配置場所

追加するコントローラークラスのある別アセンブリ内に Razor ページを置いてビルドしてもうまくいきません。
追加するコントローラークラスが ASP.NET MVC プロジェクト内にあったとした場合に、Razor ページがあるべき場所に配置されていないと読まれません。

例えば

Home2Controller クラスを追加する場合、ASP.NET MVC プロジェクト内の Views/Home2/ フォルダ内に配置します。

ひとまずこれで、Razor ページを使うコントローラーを ASP.NET MVC プロジェクトに手を加えずに追加することができました。