21

asp.net Webページ2アプリケーションのいくつかの.cshtmlビューで利用できるようにしたい以下の機能があります。この関数を (1 つだけではなく) アプリケーション内の任意のビューで使用できるようにするにはどうすればよいですか。

@functions {

    public bool DisplayButton(String startDate, String endDate)
    {
        return Convert.ToDateTime(startDate) < DateTime.Now && Convert.ToDateTime(endDate) > DateTime.Now;
    }
}
4

3 に答える 3

25

App_Code に Functions.cshtml というファイルを作成し、作成したコードをファイルに貼り付けます。次に、任意の .cshtml ファイルで、ファイル名のプレフィックスを付けて DisplayButton メソッドを呼び出すことができます。

var myBool = Functions.DisplayButton(DateTime.Now, DateTime.Now.AddDays(30));

ASP.NET Web ページでの関数とヘルパーの操作の詳細については、http: //www.mikesdotnetting.com/Article/173/The-Difference-Between-@Helpers-and-@Functions-In-WebMatrixを参照してください。

于 2013-07-11T20:26:13.507 に答える
2

ここで説明されているように、AppCode ディレクトリの Razor ファイルで「グローバル」ヘルパー関数を定義できます。 the-helper-syntax-within-razor.aspx。ただし、ヘルパーはページ要素のみをレンダリングします。値を返すことはできません (より正確には、返される値はレンダリングされる HTML マークアップです)。

値を返す必要がある場合、最善の策は拡張メソッドです。

于 2013-07-11T20:16:10.963 に答える
1

静的メソッドを持つ静的クラスを作成できず、すべてのビューの上部にそれを含めてから使用できない理由がわかりません

于 2013-07-11T20:21:16.510 に答える