bug现象:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Ajax.Utility.RegisterTypeForAjax(typeof(Test_myDesktop));
}
}
桌面设置的保存、修改和删除方法#region 桌面设置的保存、修改和删除方法
/**//// <summary>
/// 异步方法 用来得到每个用户的桌面设置
/// </summary>
/// <returns></returns>
[AjaxMethod(HttpSessionStateRequirement.Read)]
public string GetSetting()
{
string setting = string.Empty;
try
{
SMUser currentUser = HttpContext.Current.Session["User"] as SMUser;
if (null != currentUser)
{
string selectString =
string.Format("select desktopsettings from sm_user where user_sysId='{0}'",
currentUser.USER_SYSID);
setting =
SqlHelper.ExecuteScalar(SqlHelper.ConnectionString, CommandType.Text, selectString).
ToString();
}
}
catch (Exception ex)
{
setting = "";
}
return setting;
}
#endregion 利用Ajax.dll来完成异步保存用户设置时,出现"对象未定义”的错误。
尝试解决方法: 首选确认bin文件夹下ajax.dll的引用;并且在web.config中添加了
<httpHandlers>
<add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax"/>
</httpHandlers>
。(没错。这些我都做),然后检查代码以及类型注册。这部分也没有错。(我的部分代码如下:)
后台代码:
using Ajax;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Ajax.Utility.RegisterTypeForAjax(typeof(Test_myDesktop));
}
}
桌面设置的保存、修改和删除方法#region 桌面设置的保存、修改和删除方法
/**//// <summary>
/// 异步方法 用来得到每个用户的桌面设置
/// </summary>
/// <returns></returns>
[AjaxMethod(HttpSessionStateRequirement.Read)]
public string GetSetting()
{
string setting = string.Empty;
try
{
SMUser currentUser = HttpContext.Current.Session["User"] as SMUser;
if (null != currentUser)
{
string selectString =
string.Format("select desktopsettings from sm_user where user_sysId='{0}'",
currentUser.USER_SYSID);
setting =
SqlHelper.ExecuteScalar(SqlHelper.ConnectionString, CommandType.Text, selectString).
ToString();
}
}
catch (Exception ex)
{
setting = "";
}
return setting;
}
#endregion
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Ajax.Utility.RegisterTypeForAjax(typeof(Test_myDesktop));
}
}
桌面设置的保存、修改和删除方法#region 桌面设置的保存、修改和删除方法
/**//// <summary>
/// 异步方法 用来得到每个用户的桌面设置
/// </summary>
/// <returns></returns>
[AjaxMethod(HttpSessionStateRequirement.Read)]
public string GetSetting()
{
string setting = string.Empty;
try
{
SMUser currentUser = HttpContext.Current.Session["User"] as SMUser;
if (null != currentUser)
{
string selectString =
string.Format("select desktopsettings from sm_user where user_sysId='{0}'",
currentUser.USER_SYSID);
setting =
SqlHelper.ExecuteScalar(SqlHelper.ConnectionString, CommandType.Text, selectString).
ToString();
}
}
catch (Exception ex)
{
setting = "";
}
return setting;
}
前台代码:
var setting = Test_myDesktop.GetSetting();
通过上面的检查 ,发现一切都正常,按理说,不应该报错啊,便是事实就是报错了。并且我调试了许久,都没有找到解决方法。一个下午的工夫啊>>>> 。。。
最终解决方法:
有心人,天不负,最后俺终于找到解决方法了,并且这个方法还很搞笑来。最终发现的错误原因是因为俺的页面上没有<form runat="server">这个标签。把<form id="fromsID" runat="server">加上后,就好了。一下午的烦恼就因为这一个小小的标签。我真晕了。
希望我的这篇文章,可以给各位朋友一个提示,因为在我用google寻找答案的过程中,发现有很多的人也遇到了相同的问题。最后再啰嗦一句,当程序员真好,当你通过多次的尝试终于解决一个问题时,那种感觉真好。