いくつかの入力フィールド(intと文字列のカップル)とサードパーティのグリッドビューを含むaspxページがあります。データが検証され、ストアドプロシージャがコードビハインドから呼び出されて、データがDBに保存されます。
Gridviewには、コードビハインドから呼び出すことができるエラーボックスをユーザーに表示する機能があります。したがって、例外をキャッチすると、エラーメッセージが表示されます(エラーメッセージは次のようなものです:「データをデータベースに保存できません。エラー:」&ex.messageとエラーボックスを表示する関数を呼び出します。
通常、これはうまく機能しますが、(ああ、これは嫌いですが)sqlexceptionを表示しようとすると、ページにjavascript / htmlエラーが表示され、エラーボックスが表示されません。
ex.messageには、このjavascript/htmlエラーボックスでは表示できない文字が含まれているという結論に達しました。
そこで、System.Web.HttpUtility.HtmlEncode(ex.message)を使おうとしましたが、うまくいきませんでした。
好奇心からSystem.Web.HttpUtility.UrlEncode(ex.message)も実行したところ、エラーメッセージを表示できましたが、もちろん空白の代わりに「+」が表示されていました。
例:Cannot + insert + duplicate + key + row + in + object +'dbo.TableName' + with + unique + index +'IX_Unique_Dan'。%0d%0aThe + statement + has + been+terminate。
不要な文字やeofなどを削除する組み込みの方法はありますか?現在、文字列内の文字をチェックするCleanStringという名前の関数を使用しています。こんな感じ…
For Each c As Char In value.ToCharArray() If(Char.IsLetterOrDigit(c))Then msg = msg&c ElseIf(c = "。")Then msg = msg&"。" 。 。 。 そうしないと msg = msg& "" 終了する場合 次
Tnx、Benxy