ライブラリで定義されたコントローラーがあります。3 つのエリアのいずれかからこのコントローラーにアクセスできるようにしたいと思います。現時点では、たとえば「管理」領域 (つまり、/admin/contact の URL) からアクセスしたときに、コントローラー (「連絡先」としましょう) が見つかりません。ただし、「/contact」経由でアクセスすると機能します。
これらのエリアを介して共通コントローラーのアクセスを許可するために、エリアに必要なルート構成はありますか?
ありがとう。
ライブラリで定義されたコントローラーがあります。3 つのエリアのいずれかからこのコントローラーにアクセスできるようにしたいと思います。現時点では、たとえば「管理」領域 (つまり、/admin/contact の URL) からアクセスしたときに、コントローラー (「連絡先」としましょう) が見つかりません。ただし、「/contact」経由でアクセスすると機能します。
これらのエリアを介して共通コントローラーのアクセスを許可するために、エリアに必要なルート構成はありますか?
ありがとう。
このコントローラーを名前空間に配置できます。
namespace MvcApplication1.Controllers.MyAreas
{
public class ContactsController : Controller
{
...
}
}
次に、エリア登録でこの名前空間を指定します。
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Admin_default",
"Admin/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional },
new[] { "SomeLibrary.Controllers.MyAreas" }
);
}
/admin/contacts/index
のIndex
アクションに移動すると、ContactsController
実行されます。