web-dev-qa-db-ja.com

ASP.NET MVC3でエリアを構成する方法

ASP.NET MVC3でエリアを構成する方法を知っている人はいますか? here のエリアに関する記事を読みました。しかし、その記事はMVC3に基づいていません。 MVC3には、Global.asaxにあるRouteCollection routesMapRootAreaという名前の関数はありません。

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でエリアを設定する方法を教えてください。どんな種類のリンクも役立ちます。

36
Imrul

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();
40
Darin Dimitrov

ルートとエリアに同じコントローラー名を付けることができます。定義するだけです。

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 }
      );
5
shamshir

以下の画像は、mvcでエリアを構成する方法を示しています。enter image description here

1
user1089766