我有一个 aspx 页面,其中包含多个输入字段(几个整数和字符串)和第 3 方 gridview。 验证数据,并从代码隐藏调用存储过程以将数据保存到数据库中。
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%0a+语句+has+been+终止。
是否有内置方法可以删除不需要的字符、eof 和类似字符? 目前我正在使用名为 CleanString 的函数来检查字符串中的字符。 看起来像这样...
For Each c As Char In value.ToCharArray() If (Char.IsLetterOrDigit(c)) Then msg = msg & c ElseIf (c = ".") Then msg = msg & "." . . . Else msg = msg & " " End If Next
Tnx, 类克西
最佳答案
也许你需要转义引号?将每个单引号替换为反斜杠单引号。
您能否将确切的浏览器错误消息与发生错误的 javascript/html 源代码行粘贴在一起。
关于javascript - sqlexception消息显示导致页面错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3554700/