MVC Turbineで実行するプロジェクトを設定していて、IRouteRegistratorsを呼び出す際に問題が発生しました。私のチームの別の人が過去にこの問題を抱えていましたが、彼はそれを解決するために何をしなければならなかったかを思い出せません。
セットアップのコードは、これが解決されるまで、一時的にすべてGlobal.asax.csファイルにあります。私が使用しているコードは、これまでに見たすべてのチュートリアルと似ていますが、とにかく以下に含まれています。
public class MvcApplication : TurbineApplication
{
static MvcApplication()
{
ServiceLocatorManager.SetLocatorProvider (() => new StructureMapServiceLocator ());
}
protected void Application_Start ()
{
DeployDbMigrations ();
}
private void DeployDbMigrations ()
{
...
}
}
public class RouteRegistration : IRouteRegistrator
{
public void Register (RouteCollection routes)
{
routes.IgnoreRoute ("{resource}.axd/{*pathInfo}");
routes.MapRoute (
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
}
}
私が言ったように、IRouteRegistratorは呼び出されていないので、ホームページに移動すると、適切なコントローラーとビューが設定されていても、404が表示されます。
厄介なのは、現在のソリューションの外部で同様のプロジェクトを作成でき、それは機能しますが、ソリューションでは機能しないことです。(ただし、作業中のプロジェクトをソリューションにコピーして貼り付けてみましたが、それは機能しました。しかし、これを理解している間に他の誰かがWebプロジェクトでさらに作業を行ったため、これはオプションではなくなりました。)
誰かが過去にこの問題に遭遇したことがありますか、および/またはそれを修正する方法を知っていますか?