ajax: JS调用C#后台函数后,C#返回int值给JS,但不知道为什么,老是报不支持此属性或方法?
分析:
1、跟编码有关(但是我的编码全部是改成了一致的,如果用UTF-8的话,页面的所有中文都变成了乱码)
2、ajaxpro机致有关(我用的是.net2005与ajaxpro2.dll)
代码如下:
JS
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="reg.aspx.cs" Inherits="xiyangyang.reg" %>
var userName=xiyangyang.reg.checkRegName(regName).value;
if(userName>0)
{
document.getElementById("varlidname").innerHTML="<img src='Images/note_error.gif'/><font color='red'>用户名已经存在不能注册</font>";
return false;
}
服务端
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Text;
using AjaxPro;
namespace xiyangyang
{
public partial class reg : System.Web.UI.Page
{ protected void Page_Load(object sender, EventArgs e)
{
AjaxPro.Utility.RegisterTypeForAjax(typeof(reg));
} [AjaxPro.AjaxMethod]
public int checkRegName(string regName)
{
string strCheckRegName = "select count(*) from [YYGameUserDB].[dbo].[UserAccounts] where accounts ='" + regName + "'"; return DBExcute.DataBaseSql.RunExecuteScalar(strCheckRegName); }
}
请哪位高手帮忙解决,万分感激!
分析:
1、跟编码有关(但是我的编码全部是改成了一致的,如果用UTF-8的话,页面的所有中文都变成了乱码)
2、ajaxpro机致有关(我用的是.net2005与ajaxpro2.dll)
代码如下:
JS
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="reg.aspx.cs" Inherits="xiyangyang.reg" %>
var userName=xiyangyang.reg.checkRegName(regName).value;
if(userName>0)
{
document.getElementById("varlidname").innerHTML="<img src='Images/note_error.gif'/><font color='red'>用户名已经存在不能注册</font>";
return false;
}
服务端
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Text;
using AjaxPro;
namespace xiyangyang
{
public partial class reg : System.Web.UI.Page
{ protected void Page_Load(object sender, EventArgs e)
{
AjaxPro.Utility.RegisterTypeForAjax(typeof(reg));
} [AjaxPro.AjaxMethod]
public int checkRegName(string regName)
{
string strCheckRegName = "select count(*) from [YYGameUserDB].[dbo].[UserAccounts] where accounts ='" + regName + "'"; return DBExcute.DataBaseSql.RunExecuteScalar(strCheckRegName); }
}
请哪位高手帮忙解决,万分感激!
解决方案 »
- [SOS]=====100分求帮助
- Asp.net后台怎样过滤Html 网页中第一个Div标签中的所有内容、包括div
- C#中得到的对象无法保存到session中
- 谁知道比较好的支持asp.net2.0和sqlserver2000的服务器在美国的空间提供商比较好?100M费用是多少?
- web用户控件,能不能在使用它的页面中用代码操纵该控件?
- 关于页面间数据传递问题!
- ASP.NET的页面中如何显示水晶报表包含的图形?
- 如何取得最新添加的id来生静态
- FreeTextBox的问题!!
- 怎样才能将美化好的页面和程序页面结合起来阿?
- gridview列的个数不定,能否从数据库查询数据得到列
- 求csdn高手网站变灰的讨论!!!
2.检查ScriptManager中是否设置了EnableMethods=true
3.检查后台cs中是否引用的命名空间System.Web.Services或者加入了[System.Web.Services.WebMethod]
4.后台函数必须是public static5. 还有一种情况就是,通常,有些人在复制这个aspx页面时,经常是连同,<%@ Page Language="C#" AutoEventWireup="true" CodeFile="addSight.aspx.cs" Inherits="Page_message_addSight" %>一起复制了,所以造成文件头的映射出现错误,导致PageMethods的方法指向出现错误,而这种错误并没有显示那里错误,所以检查这样的错误。这是新手经常出现的错误。