1

ASP.NET MVCで、「コントローラー」サフィックスを使用せずにコントローラークラスを作成するにはどうすればよいですか?ウェブ上で解決策を見つけることができませんでした。MSDNのドキュメントには、コントローラークラス名は「controller」で終わる必要があると記載されています。

専門家が私を助けてくれますか?

ありがとうございました。

ジェリー

4

1 に答える 1

2

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を調べる必要があります。

于 2012-07-11T15:45:29.697 に答える