有一个登录窗口。登录以后发生以下的问题。
“/WebManager”应用程序中的服务器错误。
--------------------------------------------------------------------------------
字符串的长度不能为零。
参数名: oldValue
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.ArgumentException: 字符串的长度不能为零。
参数名: oldValue
源错误:
行 25: if (Page.IsValid)
行 26: {
行 27: String strName = Functions.RepStr(UserName.Text, Functions.RepStrDirec.AscToHtml);
行 28: String strPwd = Functions.RepStr(UserPwd.Text, Functions.RepStrDirec.AscToHtml);
行 29: if (Services.GetInstance().CheckLogin(strName, strPwd))
源文件: d:\web\WebManager\Admin\Admin_Login.aspx.cs 行: 27
堆栈跟踪:
[ArgumentException: 字符串的长度不能为零。
参数名: oldValue]
System.String.Replace(String oldValue, String newValue) +0
Util.Functions.RepStr(String MyStr, RepStrDirec MyDirection) +145
Admin_Admin_login.IbtnLogin_Click(Object sender, ImageClickEventArgs e) in d:\web\WebManager\Admin\Admin_Login.aspx.cs:27
System.Web.UI.WebControls.ImageButton.OnClick(ImageClickEventArgs e) +105
System.Web.UI.WebControls.ImageButton.RaisePostBackEvent(String eventArgument) +115
System.Web.UI.WebControls.ImageButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +7
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +11
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5102
--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:2.0.50727.42; ASP.NET 版本:2.0.50727.42
解决方案:此问题虽然表面提示在.cs文件中出错了,其实是在.aspx文件中的问题,有一个地方没有判断是否为空,导致str.replace(oldStr,newStr)函数中被替换的值oldeStr为空导致的,增加一个是否为空的判断即可解决。