3

「管理者」と呼ばれる Web アプリにエリアがあります。

したがって、http://localhost.com/Adminは、管理領域のホーム コントローラーとインデックス アクションに移動します。

ただし、次の URL で Admin Home Controller と Index Action にアクセスできるようにしたいと考えています。

http://localhost.com/こんにちは

私はこれを私の試みとして持っています:

routes.MapRoute(
            "HelloPage",
            "Hello/{controller}/{action}",
            new{area= "Admin", controller = "Home", action = "Index"},
            new[] { typeof(Areas.Admin.Controllers.HomeController).Namespace });

ご覧のとおり、名前空間と領域を指定していますが、ルーティング エラーしか表示されません。

ビュー「インデックス」またはそのマスターが見つからないか、検索された場所をサポートするビュー エンジンがありません。

管理エリアでは検索していません。

何か案は?

4

2 に答える 2

5

これを試して:

routes.MapRoute(
       "HelloPage",
       "Hello/{controller}/{action}/{id}",
       new { area = "Admin", controller = "Home", action = "Index", id = UrlParameter.Optional }
);

そして、これを管理コントローラー アクションに追加します。

  if (!this.ControllerContext.RouteData.DataTokens.ContainsKey("area"))
  {
      this.ControllerContext.RouteData.DataTokens.Add("area", "Admin")
  }

詳細なドキュメントについては、こちらを参照してください

于 2012-07-22T01:28:50.060 に答える
5

問題は、Global.asax でルートを設定していたことです。

Admin 領域の AreaRegistration で設定する必要がありました。私がそれをしたら、問題は修正されました。

于 2012-07-22T04:28:06.427 に答える