ASP.NET MVC3でエリアを構成する方法を知っている人はいますか? here のエリアに関する記事を読みました。しかし、その記事はMVC3に基づいていません。 MVC3には、Global.asaxにあるRouteCollection routes
にMapRootArea
という名前の関数はありません。
routes.MapRootArea("{controller}/{action}/{id}",
"AreasDemo",
new { controller = "Home", action = "Index", id = "" });
MVC3を使用して新しい領域を作成すると、AreaRegistration
から継承した領域のクラスを取得し、次のようになります(ここでBlogsは領域名です)
public class BlogsAreaRegistration : AreaRegistration
{
public override string AreaName
{
get
{
return "Blogs";
}
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Blogs_default",
"Blogs/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }
);
}
}
誰もMVC3でエリアを設定する方法を教えてください。どんな種類のリンクも役立ちます。
Webプロジェクトを右クリックして、[追加]-> [エリア...]を選択します。次に、エリアの名前を入力すると、Visual Studioが残りの処理を行い、必要なすべてのクラスを生成します。たとえば、エリアの登録は次のようになります。
public class AreasDemoAreaRegistration : AreaRegistration
{
public override string AreaName
{
get
{
return "AreasDemo";
}
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"AreasDemo_default",
"AreasDemo/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }
);
}
}
およびApplication_Start
あなたの Global.asax
あなたに必要なのは:
AreaRegistration.RegisterAllAreas();
ルートとエリアに同じコントローラー名を付けることができます。定義するだけです。
Global.asaxで、以下に示すようにroutes.maprouteの最後の行を追加します
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional },// Parameter defaults
new[]{"YourNameSpace.Controllers"}
);
また、ares/????? AreaRegistration.csファイルにコントローラーの名前を追加します
context.MapRoute(
"Membership_default",
"Membership/{controller}/{action}/{id}",
new { controller= "Home", action = "Index", id = UrlParameter.Optional }
);
以下の画像は、mvcでエリアを構成する方法を示しています。