私のプロジェクト構造:
Controller
AdminController
HomeController
エリア追加後、プロジェクト構造プロジェクトに管理エリアを追加しました。
Areas
Admin
Controller
SomeController
Controller
AdminController
HomeController
その後、すべてのリンクが壊れます。例えば
@Html.ActionLink(
"go to some action",
"SomeAction",
"Admin",
new { area = "" },
null)
上記のリンクを書くと、にルーティングされますがwww.myDomain.com/Admin/SomeAction
、これはAreaアクションであり、AdminControllerアクションにルーティングしたいと思います。
これどうやってするの?エリア名またはコントローラー名を変更する必要がありますか?
アップデート
上記のリンク出力:
domain/Admin/SomeAction
// I expect that is AdminController/SomeAction
// but not. There is SomeAction in my admin controller
// I get this error "The resource cannot be found."
// because it looks my expected, but it works unexpected
// it tries to call AdminArea/SomeController/SomeAction
アップデート2
例えば:
@Html.ActionLink(
"go to some action",
"SomeAnotherAction",
"Admin",
new { area = "" },
null)
上記のリンクでは、自分の地域にSomeAnotherActionがあるため、エラーは発生しません。
エリア登録
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Admin_default",
"Admin/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }
);
}
ありがとう...