これは、ASP.NET JS 開発の一般的な問題です。私に関しては、毎回同じアプローチを使用していますが、問題ないようです。
私は Javascript で OOP に慣れているので、ほとんどの JS 外部ファイルは次のようになります。
function CouponManager()
{
}
そして、.aspxコードで私は:
<script language="javascript">
var couponManager = new CouponManager();
</script>
いくつかのパラメーターを渡す必要がある場合は、クラスの宣言を次のように変更します。
function CouponManager(params)
{
// .. stuff here
this.initialize = function(initParams)
{
// .. accessing initParams variable for server control IDs
};
this.initialize(params);
}
そして、.aspx コードから次のことを行います。
<script language="javascript">
var couponManager = new CouponManager
({
txtCouponNameId = '<%= txtCouponName.ClientID %>',
txtCouponDescriptionId = '<%= txtCouponDescription.ClientID %>'
});
</script>
このアプローチにより、JS を .aspx ページから分離し、すべてのサーバー コントロールの依存関係を 1 つのタグに含めることができます。