ASP.NET MVCで、「コントローラー」サフィックスを使用せずにコントローラークラスを作成するにはどうすればよいですか?ウェブ上で解決策を見つけることができませんでした。MSDNのドキュメントには、コントローラークラス名は「controller」で終わる必要があると記載されています。
専門家が私を助けてくれますか?
ありがとうございました。
ジェリー
ASP.NET MVCで、「コントローラー」サフィックスを使用せずにコントローラークラスを作成するにはどうすればよいですか?ウェブ上で解決策を見つけることができませんでした。MSDNのドキュメントには、コントローラークラス名は「controller」で終わる必要があると記載されています。
専門家が私を助けてくれますか?
ありがとうございました。
ジェリー
DefaultControllerFactory
メソッドを継承してオーバーライドすることにより、カスタムコントローラーファクトリを使用する必要がありますGetControllerType
。
// instantiate controllers that doesn't have "Controller" suffix.
public class CustomControllerFactory: DefaultControllerFactory
{
protected override Type GetControllerType(System.Web.Routing.RequestContext requestContext, string controllerName)
{
var controllersNs = "MvcApp.Controllers";
return Type.GetType(string.Format("{0}.{1}", controllersNs, controllerName));
}
}
そして、このコントローラー ファクトリを Global.asax.cs に登録する必要があります。
ControllerBuilder.Current.SetControllerFactory(new CustomControllerFactory());
重要:は、型やその他のものをキャッシュすることでパフォーマンスを向上させるために、より多くの作業を行います。より良いアイデアを得るには、ソース コードDefaultControllerFactory
を調べる必要があります。