2つのコントローラーがあり、両方ともAccountController
と呼ばれます。それらの1つは、Controller A
と呼ぶことができ、Area
と呼ばれるAdmin
にあり、もう1つは、Controller B
と呼ぶことができ、Area
にはないArea
?)。 Controller B
には、Login
というaction method
があります。 action method
にController A
があり、この行があります
return RedirectToAction("LogIn", "Account");
問題は、404
に存在しないaction
にリダイレクトしようとするため、この行が実行されるときにController A
を取得することです。 action method
でController B
を呼び出したいです。これは可能ですか?
area
パラメーターでrouteValues
を指定できます。これを試して:
return RedirectToAction("LogIn", "Account", new { area = "Admin" });
または
return RedirectToAction("LogIn", "Account", new { area = "" });
あなたが目指しているエリアに応じて。
これを使って:
return RedirectToAction("LogIn", "Account", new { area = "" });
これにより、「グローバル」エリアのLogIn
コントローラーのAccount
アクションにリダイレクトされます。
このRedirectToAction
オーバーロードを使用しています:
protected internal RedirectToRouteResult RedirectToAction(
string actionName,
string controllerName,
Object routeValues
)
これを使用できます:
return RedirectToAction("actionName", "controllerName", new { area = "Admin" });
これを使って:
return this.RedirectToAction<AccountController>(m => m.LogIn());