元のプログラマーがデータバインディングに関連しないページで<%# ... %>
を使用しているコードがいくつか出てきました。これは、ページに文字列を出力するために使用されています。これは安全ですか? <%#
は<%=
、この場合は<%:
のように振る舞いますか?データバインディング以外の方法で<%#を使用すると安全です
0
A
答えて
1
この場合<% =または<%よう<%の#振る舞うことを行いますか?
タグ内のコードがResponse.Write()などを明示的に呼び出す場合のみ。
1
<%... ...%>の式が評価され、文字列に変換されます。結果はコントロールのプロパティに割り当てられ、コントロールがない場合はDataBoundLiteralControlが追加されます。それは安全ですか?はい。最初にページにアクセスすると、ASP .Netで解析され、新しいクラスが生成され、これらのブロックのコードを含むアセンブリにコンパイルされます。
は、それがその、HtmlTextWriter.Write法で使用され、どのような、<% = ...%>の間で前と同じように作用するが、結果は、任意のプロパティに割り当てられていませんbtwはvoidを返すので、データバインディング式で使用しようとするとうまくいきません。これは、両構築物において使用することができます
:何について
評価された文字列がSystem.Web.HttpUtility.HtmlEncode経由でエンコードされたHTMLであるため、安全であるプラス。 したがって、データバインディングの構造体<%#またはライター構造<%(=なし)で使用することができます。 、コンパイルエラーを与えるショー完全コンパイルソースをクリックし、その行に移動します構築物における
ヒント
書き込み何か。ブラックボックスはもはやブラックボックスではありません。
関連する問題
- 1. jspでgetParameterを使用する方法安全な方法
- 2. SQL Server以外のプライマリキーとしてGUIDを安全に使用できるデータベースはどれですか?
- 3. セッションを使用してサイト構成を保存するのは、安全で安全な方法ですか?
- 4. JSPでセッション変数を安全に使用する方法
- 5. 安全でないコードを使用する方法Unity
- 6. メッセージングアプリケーションでAmazon S3を安全に使用する方法
- 7. linq where節で.substringメソッドを安全に使用する方法
- 8. phpmysqlでログインをより安全に作成する方法mysqlの実際のエスケープ以外の方法は?
- 9. didRegisterForRemoteNotificationsWithDeviceToken以外の方法でデバイストークンを使用する方法?
- 10. $ _SERVER ['REMOTE_ADDR']と$ _SERVER ['HTTP_USER_AGENT']を安全に使用する方法
- 11. ビューがnull例外の安全であることを保証する方法
- 12. このソート方法は安全に使用できますか?
- 13. 安全な方法と安全でない方法のPlay Frameworkコントローラ。可能?
- 14. 以下のヘルパークラスは安全ですか?
- 15. std :: vector <> :: emplace_back()の例外は安全ですか?
- 16. Dictionary <>をLinqと外部で使用する方法は?
- 17. Springアプリケーションコンテキストで使用されるユーザー名とパスワードを安全に外部化する方法
- 18. セッションを安全にカウントする方法:Session_Start/End in Global.Asaxは安全で安全ですか?
- 19. Jetty - jettyのデフォルトサーブレットを使用することは安全です
- 20. PDDクラスInDirectlyを使用する方が安全ですか?
- 21. イベントソースをデフォルト以外のJSON形式で使用する方法
- 22. 0以外のフラグでテストを使用する方法-n
- 23. この方法は安全ですか?
- 24. ASP.NETで「S_pers」と「s_sess」のCookieを安全にマークする方法
- 25. フォームでのParsley.js検証の安全な使用方法
- 26. シングルトンExecutorServiceを使用することは安全ですか
- 27. 安全な要素にAndroidスマートカードapiを使用する方法
- 28. sscanfを正しく安全に使用する方法
- 29. 安全にstd :: basic_istreamをシリアル化する方法<char> :: pos_type?
- 30. これはgotoを使用する安全な方法ですか?
Page.DataBindが呼び出されていませんか? –
右。 DataBindが呼び出されない場合、何も出力されません。 –
ネストされたマスターページを使用しているときにコンテンツプレースホルダにダイナミックリンクURLを配置するときの記述と同様のテクニックを使用しました。ネストされたプレースホルダを含むプレースホルダに動的コード( '<%=')があると、ASP.NETはエラーを返します。これを '<%#Page.ResolveUrl ... 'に置き換えることで、両方のシナリオをサポートするコードビハインドでPage.DataBindを呼び出すことができます。素晴らしい解決策ではありませんが、うまくいきます。 –