以前に 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 プロジェクトに手を加えずに追加することができました。