20

6 つのコントローラーで呼び出す同じメソッドがあります。現在、各コントローラー間でコピー アンド ペーストを行っています。すべてのコントローラーは同じ名前空間にあります。このメソッドは、渡された ID に基づいて bool を返します。例えば:

public bool CheckSubmission(int id =0)
{
    Get Records from DB with criteria
    If Record available return true
    else return false
}

私はしばらくの間 C++ C# から離れていて、これらを一度書く方法を見つけることができません。Rails では、共有関数を ApplicationController に配置できることを知っています。これについてSOに関するいくつかの質問を見てきましたが、明確な例ではありません.OOPで読んだ行に沿っています。私がこれに戻ったとき、どんな助けもいただければ幸いです。

4

1 に答える 1

36

ControllerBaseから継承するクラスを作成し、Controllerこのメソッドをその中に配置します。

コントローラにベース コントローラを継承させます。この実装を使用して取得します。

public class ControllerBase : Controller
{
  public bool CheckSubmission(int id = 0)
  {
    Get Records from DB with criteria
    If Record available return true
    else return false
  }
}

public class SomethingController : ControllerBase
{
    // Can use CheckSubmission in here
}
于 2013-02-27T20:27:46.497 に答える