2016-03-31 12 views
2

私たちはC#とASP.NETで構築されたWebアプリケーションを持っています。 JavaScriptコードでいくつかの.NETセッション変数を参照する必要があるので、次の行を使用してください:Javascriptに含まれるC#コードはまだコンパイルする必要がありますか?

var layoutID = '<%=Server.UrlEncode(string.Format("{0}", Session["layout_id"]))%>'; 

これはうまくいきます。 Webアプリケーションが構築され、Webサーバーに公開されます。私が変更を加えたい場合、.NETを変更するには、変更をコンパイルしてWebサーバーに再度公開する必要があります。 JavaScriptの変更の場合は、.ASPXページでjsを編集するだけで、修正が直ちに取得されます。コンパイルする必要はありません。

私の質問 - JavaScriptに含まれているこのインラインC#コードを変更するとどうなりますか?たとえば、セッション["layoutid"]にアンダースコアなしでアクセスすることを意味していたとします。 Webサーバー上の.ASPXページを編集するだけでもいいですか.CSSファイルと同じようにコンパイルする必要がありますか?私はそれがC#であると推測していますが、私はまだ変更を取得するためにコンパイルする必要があります。そして、はい、私はそれを試してみることができ、自分のために見えるかもしれませんが、私は誰かがこのインラインC#コードで何が起こっているのかについて少し洞察を与えることができると考えていました。私たちが話題に入っている間、JavaScriptで.NETセッション変数にアクセスするために使っている技術は、これを行う最も効率的な方法ですか? ボーナスの質問 - このテクニックは何と呼ばれていますか?私は答えを探してみましたが、 "in-line C#code JavaScript"以外のものを探すべきか分かりませんでした。

ありがとうございます!

+1

まず最初に "eval is evil"というコードを決して文字列に格納しないでください。第2に、データベーステーブル、設定ファイルなどにパラメータを格納できるたびに、どの言語でも開発時にマイナーな変更を加えたい場合は、再コンパイルしないでください。 – oscargilfc

+0

私は過去1年間で同様のコードを変更しましたが、それが役立つ場合はコンパイルする必要はありませんでした....しかし、それは良い方法ではないと私は同意します。 –

+0

これを試してみるともっと早く答えられないのでしょうか? –

答えて

4

いいえ、ASPX/CSHTMLファイルを変更しても、再コンパイルする必要はありません。

注:プロダクションサーバーにジャンプし、ソース管理/テストを迂回するランダムコードを変更することは、あなたのチームが議論し回答するのがよいでしょうか。

+0

ありがとうアレクセイ。これは特別な状況ですが、あなたが正しいです、通常、私は生産に飛び乗ってこのような変更を行うことはありません。 – Ageonix

関連する問題