2009-03-09 19 views
1

すべてのコントローラビューで呼び出すことができるメソッドを定義できるアプリケーションヘルパーを作成する方法を探しています。 Railsでは無料で入手できますが、C#でASP.NET MVCでこれをどのように達成できますか?ASP.NET MVCのアプリケーションヘルパー

答えて

3

通常の方法ではHtmlHelperに拡張メソッドを書くことである - 例えば:

public static string Script(this HtmlHelper html, string path) 
{ 
    var filePath = VirtualPathUtility.ToAbsolute(path); 
    return "<script type=\"text/javascript\" src=\"" + filePath 
     + "\"></script>"; 
} 

今(標準ビューはHtmlと呼ばれるHtmlHelper部材を有するので)あなたがHtml.Script("foo");などを使用することができますビューで。また、ベースビューでメソッドを記述することもできますが、拡張メソッドのアプローチが最も一般的です。

0

基本コントローラクラスに拡張メソッドを追加することをお勧めします。

public static class ControllerExtensions 
{ 
    public static string Summin(this Controller c) 
    { 
     return string.Empty; 
    } 
} 

あなたのコントローラ内でヘルパー関数にアクセスすることができます。

public class MyController : Controller 
    { 
     public ActionResult Index() 
     { 
      this.Summin(); 
      return View(); 
     } 
    } 
+0

私はそれを解釈する方法を、それはしかし、ビュー、コントローラではない...ない大きな変化から欲しかったです。 –