0

私はMVC4に「HomeController」という名前のコントローラー内に「admin」領域を持つWebサイトを持っています。また、私のプロジェクトには「HomeController」という名前のコントローラーを持つフォルダーコントローラーがあります。

public ActionResult LogOff()
{
    FormsAuthentication.SignOut();
    return RedirectToAction("Index", "Home");
}

エラーが発生します:「ホー​​ム」という名前のコントローラーに一致する複数のタイプが見つかりました。これは、このリクエストを処理するルート('{controller} / {action} / {id}')が、リクエストに一致するコントローラーを検索するための名前空間を指定していない場合に発生する可能性があります。この場合は、「namespaces」パラメーターを受け取る「MapRoute」メソッドのオーバーロードを呼び出して、このルートを登録します。

'Home'のリクエストにより、一致する次のコントローラーが見つかりました:site1.co.il.Controllers.HomeController site1.co.il.Areas.Admin.Controllers.HomeController

4

1 に答える 1

3

異なるエリアに同じコントローラーとアクションがある場合、どちらが目的のルートであるかを指定しない限り、MVC4はそれらの1つを選択する方法がありません。

次のように指定できます。

return RedirectToAction("action", "controller", new { area = "area" });

あなたの場合area"admin"

ルートを参照する場合Controller、面積は""

次のように適切なコントローラーを参照することもできますが"admin\home"、同等のものが機能するかどうかはわかりません"\home"

于 2013-04-01T15:52:38.350 に答える