2009-04-23 9 views
4

私は外部CSSとjavascriptファイルの使用を好みます。しかし、javascriptやcssファイルの内容を動的にする必要があるケースが数多くあります。私は通常、aspxページのインラインまたはインページコードにjavascriptまたはcssを転送し、そこで動的なものを処理します。誰かがASP.net(webforms)を使ってjavascriptやcssファイルを動的に生成しますか?

誰かがより良いアプローチをしていますか? asp.netの定期的なテンプレート言語を使用してjsまたはcssファイル全体を生成する方法がありますか?

私は現在webformsを使用していますが、MVCでもこの問題を解決することに興味があります。

おかげ

答えて

4

私は前に動的なJavaScriptを返送するHTTPHandlerを使用しました。しかし、System.Web.UI.Pageから継承するものではありません。

HTTPHandlerとASHXまたはAXDを使用することは、リソースを動的に返信する「ASP.Net」方法です。

+0

私が知る限り、AXDは埋め込まれた静的リソースまたはスクリプトを結合するためのものです。私はashxに同意します。なぜなら、これは私が使用したものです(カスタムハンドラクラスも同様です)。 – eglasius

+0

「ベストプラクティス」についてはわかりませんが、バックエンドの.axd urlをHTTPHandlersにマップしています。 yesですが、.axdは組み込みリソースの拡張機能です。 –

2

私はダイナミックCSSのハンドラを使用しています。必要なものによっては、jsファイルでも同じことができます。

私は## bacgroundcolor ##のように動的でなければならない部分のプレースホルダーを持つcssファイルを持っていて、ハンドラはちょうど適切なものに置き換えられました。

私は、特別な振る舞いを必要とするhtml要素をマークするためにCSSクラスを使用するアプローチも使用しました。その後、静的なjs、この要素を探し、適切なハンドラをフックします。これは確かにjqueryでもっと簡単になるでしょう(私は普通のjsでそれをやっていました:()。

1

これはaspxページで前に行っていますが、私の意見ではWebFormスタイルは適合しません私はそれを行うたびに、古典的なASPのようにかなり見えるようになりました。

+0

まず、静的な部分を通常のファイルに移動し、動的なものだけを残して、送信する内容を最小限に抑えます。また、ファイルをプレースホルダのテンプレートとして使用することもできます。 – eglasius

0

うまくいけば、あなたが使っている実際のJavaScriptは静的に留まり、パラメータを渡すだけです。

+1

一般的にこれはそうですが、時にはダイナミックにするほうがずっと簡単です。これは、webformsページイベントモデルの複雑さを考慮する場合に特に当てはまります。 –

0

私は、ページのマークアップにあって<%= control.ClientID %>のようなものを含んでいたJavaScriptコードをスタティックJavaScriptに置き換えました。私はcをリファクタリングしました。私はその後、これらの可変部分をクラスメンバーにリファクタリングしました。このページは、ClientIDが設定されたクラスのインスタンスを作成します。関数は静的にすることができます。

関連する問題