asp:TextBoxのXMLタグは、他のコントロールの機能を妨げますか?
-
05-07-2019 - |
質問
ASPページに一連のコントロールがあります。 UpdatePanel内にあるものとそうでないものがあります。
テキストボックスのいずれかにXMLタグを配置すると(たとえば<!> quot; <foo>
<!> quot;)、UpdatePanel内のすべてのコントロールが機能しなくなります。タグが削除されるとすぐに、すべてが問題ありません。
「送信」ボタンはUpdatePanelにあり、btnSubmit_Clickのブレークポイントは、テキストボックスにタグがない場合にのみヒットします。
私は長年のC#開発者ですが、ASP.NETにはまったく新しいので、明らかな何かを見逃しているかもしれません...これは期待した動作ではありません。
解決
UpdatePanelをページから削除する場合、.NETは<!> quot; <!> lt; foo <!> gt; <!> quotと考えるため、ポストバックがエラーを引き起こしていることがわかります。 ;サーバーで受け入れる可能性のある潜在的に危険なデータです。 StackOverflowのこれの質問をご覧ください。エラーページHTMLはブラウザに直接ではなくUpdatePanelのajax呼び出しに返されているため、エラーは表示されず、UpdatePanelはその処理方法を認識していません。
追加することでチェックをオフにできます
ValidateRequest="false"
へ<!> lt; @Page ... <!> gt; aspxファイルの上部にあるディレクティブ。または、web.configを変更して、Webアプリ全体で同じ効果を得ることができます。
他のヒント
テキストエリアにマークアップを配置することはできません。他の要素と同様に、textarea内のマークアップ文字をHTMLエスケープする必要があります。
<textarea><foo> & <bar></textarea>
実際には、ブラウザーは通常、意味を理解し、<
文字をそのまま表示しますが、それでも無効なHTMLおよび整形式でないXMLです(おそらく、これはASP.NETの問題の原因でもあります) 、特定のコードがなければわかりませんが。)