MVC エリアに関する問題について、誰かが私を正してくれることを願っています。この質問が以前に尋ねられたことは知っていますが、コードにエラーが表示されません。継承したイントラネット アプリで、既存の管理領域コントローラーと対応するビューに別の ActionResult メソッドを作成しました。
ActionResult AllCurrentAttributes()
パラメーターを必要とせず、VS 2012 IDE でアプリを操作すると機能します。ただし、デプロイされたアプリは次のエラーをスローします: HTTP 404. 探しているリソース (またはその依存関係の 1 つ) が削除されたか、名前が変更されたか、一時的に利用できない可能性があります。同じコントローラー内の他の ActionResult メソッドは完全に機能します。
他のすべての作業ルートは、AdministrationAreaRegistration.cs に登録されています。
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"RA",
"Administration/RA/{raId}",
new { area = "Administration", controller = "RA", action = "View" },
new { riskAssessmentId = @"\d+" },
new[] { "LargeApp.UI.Web.Areas.Administration.Controllers" }
);
context.MapRoute(
"RA Work",
"Administration/ RA /Work/{raId}",
new { area = "Administration", controller = " RA ", action = "Work" },
new { riskAssessmentId = @"\d+" },
new[] { " LargeApp.UI.Web.Areas.Administration.Controllers" }
);
context.MapRoute(
"All Current Attributes",
"Administration/ RA /AllCurrentAttributes/",
new { area = "Administration", controller = " RA ", action = "AllCurrentAttributes" },
new[] { " LargeApp.UI.Web.Areas.Administration.Controllers" }
);
context.MapRoute(
"Administration Default",
"Administration/{controller}/{action}/{id}",
new { area = "Administration", controller = "Home", action = "Index", id = UrlParameter.Optional },
new[] { " LargeApp.UI.Web.Areas.Administration.Controllers" }
);
}
管理領域にあるホーム コントローラー用に作成されたビューである Index.cshtml の ActionLink は、次のようになります。
@Html.ActionLink("All Current Attributes", "AllCurrentAttributes", "RA")
ビューは、管理領域内の RA フォルダーにあり、AllCurrentAttributes.cshtml という名前が付けられています。同じ RA コントローラーを参照する Index.cshtml 内の他の ActionLinks は完全に機能します。
@Html.ActionLink("Work Rules", "WorkIndex", "RA ")
@Html.Action("List", "RA ")
Global.asax では、RegisterRoutes(RouteCollection routes) が呼び出される前に、AreaRegistration.RegisterAllAreas() が Application_Start で呼び出されます。RegisterRoutes では、デフォルトのルート コードは次のようになります。
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional },
new[] { "LargeApp.UI.Web.Controllers" }
);
404エラーを解決する方法を知っている人はいますか?
ありがとう!