2011-02-03 8 views
2

WebMatrixで自分のデータグリッドヘルパーを作成しました。ページングと並べ替えのリンクもヘルパーですが、私は本当にそれらのヘルパーを他のアプリに公開したくはありません。例えばWebMatrixでヘルパーを非公開にすることは可能ですか?

@helper Pager(IEnumerable<dynamic> gridData, 
    int totalRows, int currentPage, int rowsPerPage) 
{ 
    // Helper code is here. 
} 

ヘルパーをプライベートにする方法はありますか?とにかくそれは悪い習慣でしょうか?私は私的な機能があることを知っていますが、ヘルパーは統語的な観点からは便利です。

+0

私は、コードの重複を避けるために追加されたメソッドとしてヘルパーを考える。これらを非公開にすると、ヘルパーをコピーして再利用したい各場所に貼り付ける必要があるため、その目的を無効にします。コードが再利用されないようにする理由はありますか? –

+0

druttka - グリッドヘルパー自体の内部で、コードの再利用にページとリンクヘルパーを使用しています。私はOOPとカプセル化に慣れており、プライベートメソッドが一般的です。私は非常に簡単に実際のプライベートメソッドを作成することができますが、私はRazorのヘルパー構文が気に入っています。大したことはありません(これは単純なプロジェクトなので、WebMatrixを使用しています)。これが可能だったのか不思議です。 –

答えて

1

@helperという構文を使用すると、ヘルパーメソッドは自動的にpublicstaticメソッドにコンパイルされます。あなたの質問に対する答えは「いいえ」です。

1

1つの方法は、ライブラリを作成し、web.configファイルまたは.cshtmlファイルで参照することです。 ヘルパーは必要なhtmlを基本的に出力しますが、基本的にhtmlhelpersはHTML文字列を返します。すべてのコードをライブラリに移動し、メインアプリケーションとは別に移動する必要があります。

関連する問題