使用Ajax在javascript中调用后台C#函数

最近一段时间在紧跟一个网站的项目,数据库中用户表的UserName要求是唯一的,所以当用户选定一个用户名进行注册时要首先检查该用户名是否已被占用,并给出提示。起初的实现是:用户填写完注册表单提交后,在后台进行验证。但看到很多网站的设计是当用户填写完用户名,TextBox失去焦点后就会立即给出提示,比如https://passport.csdn.net/account/register,反应很迅速,应该是在前台进行检查的。今天花了些时间针对这一点查了一些资料。
 
js调用后台C#函数检测用户名时需要获取用户输入的用户名,然后检查数据库中是否已含有该用户名:
 
传递参数的方法,有的(http://www.cnblogs.com/morningwang/archive/2008/04/07/1140340.html)采用如下方法:
 
//后台
 
protected string CsharpVoid(string strCC)
{
   strCC = "你好!" + strCC;
   return strCC;
}
 
//前台
 
function Init()
{
   var v = "中国";
   var s = '<%=CsharpVoid("'+v+'") %>';
   alert(s);
}
 
我进行了尝试,结果并不如人所愿。后来绝决定使用Ajax来实现。由于之前了解的甚少,所以整个过程也走了不少弯路,幸运的是最后还是给弄出来了。具体实现步骤如下:
 
1.bin目录下添加引用:AjaxPro.2.dll
 
 并在后台Codefile中并添加using AjaxPro;
 
2.Web.config 中<system.webServer>里的<handlers>下添加,以下内容:
<add name="AjaxPro" verb="POST,GET" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory,AjaxPro.2"/>

3.Site.master的aspx文件中的<asp:ScriptManager> 添加 ,EnablePageMethods="true"。
 
4.使用方法:
 
1)类前添加:[AjaxNamespace("ANSP")](修改命名空间名称,可略过)
 
[AjaxNamespace("ANSP")]
 public partial class Physician_WUC_PhysicianInfor : System.Web.UI.UserControl
 {
 
}
 
2)Page_Load
 
protected void Page_Load(object sender, EventArgs e)
 {
  lca_dataservice = new lca_database_service.lca_database_service();
  Utility.RegisterTypeForAjax(typeof(Physician_WUC_PhysicianInfor));
 }
 
3)要调用的方法前添加:[AjaxPro.AjaxMethod]

[AjaxPro.AjaxMethod]
 public bool CheckUsernameExist(string username)
 {
  bool NotExist = false;
 
  try
  {
    System.Data.DataSet ds = lca_dataservice.readDoctor(username);
    if (ds == null || ds.Tables[0].Rows.Count <= 0)
    {
      NotExist = true;
    }
  }
  catch (Exception ex)
  {
    NotExist = false;
  }
  return NotExist;
 }

4)前台js调用方法:
 
var Exist = ANSP.CheckUsernameExist(userName).value;

Exist为函数返回值。
 
if(Exist==true)
{
 
  //用户名不存在
 
}else
 
{
 
  //用户名存在
 
}
 
经过以上设置,算是达到了预想的要求。

使用Ajax在javascript中调用后台C#函数的更多相关文章

  1. 利用ajax在javascript中获取后台的值

    <script type="text/javascript"> function login() { var sa = WebForm1.Hello().value; ...

  2. 使用ASP.NET AJAX 从脚本中调用Web 服务的应用方法

    技能点:通过编写WebService,在页面js中调用WebService来进行数据查询. 网站开发,有些时候需要使用js在页面动态生成一些内容,但还有些数据要通过查询数据库才能获取的. 但由于诸如主 ...

  3. JAVAFX 2.0 javascript中调用java代码

    现在你已经知道如何在JavaFX中调用JavaScript.在本章中,你将了解到相反的功能——在web页面中调用JavaFX. 大体上的理念是在JavaFX程序中创建一个接口对象,并通过调用JSObj ...

  4. COM动态添加删除成员,类似JavaScript中调用的对象

    在JavaScript中调用对象时,可动态添加删除成员如: var obj=new Object; obj.member1='aaaaa'; obj.fun1=function() { alert(' ...

  5. ASP.NET#JavaScript中调用WebServer注意的问题

    1)要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,就要取消注销以下行:[System.Web.Script.Services.ScriptService](2)调用格式:命名空间 ...

  6. [转]Javascript中的自执行函数表达式

    [转]Javascript中的自执行函数表达式 本文转载自:http://www.ghugo.com/javascript-auto-run-function/ 以下是正文: Posted on 20 ...

  7. 深入理解javascript中的立即执行函数(function(){…})()

    投稿:junjie 字体:[增加 减小] 类型:转载 时间:2014-06-12 我要评论 这篇文章主要介绍了深入理解javascript中的立即执行函数,立即执行函数也叫立即调用函数,通常它的写法是 ...

  8. 在javascript中关于变量与函数的提升

    在javascript中关于变量与函数的提升 一.简介 在javascript中声明变量与函数的执行步骤: 1.先预解析变量或函数声明代码,会把用var声明的变量或者函数声明的代码块进行提升操作 2. ...

  9. javascript中的立即执行函数(function(){…})()

    javascript中的立即执行函数(function(){…})() 深入理解javascript中的立即执行函数,立即执行函数也叫立即调用函数,通常它的写法是用(function(){…})()包 ...

随机推荐

  1. 【重走Android之路】【番外篇】有关于null的一些知识点

    [重走Android之路][番外篇]有关于null的一些知识点   1.首先,到底什么是null? null是Java中的一个关键字,用于表示一个空对象引用,但其本身并不是任何类型也不是属于任何对象. ...

  2. 278. First Bad Version

    题目: You are a product manager and currently leading a team to develop a new product. Unfortunately, ...

  3. 【推荐】HTML5 UI框架 推荐

    笔者的男装网店:http://shop101289731.taobao.com .冬装,在寒冷的冬季温暖你.新品上市,环境选购 最近自己瞎搞一下web网页的东西.想开发先找资源. 整理了一下HTML5 ...

  4. SPOJ 1487 Query on a tree III(划分树)

    题目链接:http://www.spoj.com/problems/PT07J/ 题意:给出一个有根树,1为根节点,每个节点有权值.若干询问,询问以u为根的子树中权值第K小的节点编号. 思路:DFS一 ...

  5. 多个电脑共用一个ssh

    比如我们有多个设备,但不想每个设备上生成一个ssh key,然后去github或其他网站上添加,那样的话,ssh key会比较多,搞起来会比较乱,所以我们想在不同的设备上使用同一个ssh. 做法是,我 ...

  6. [Android] Android开发优化之——使用软引用和弱引用

      Java从JDK1.2版本开始,就把对象的引用分为四种级别,从而使程序能更加灵活的控制对象的生命周期.这四种级别由高到低依次为:强引用.软引用.弱引用和虚引用. 这里重点介绍一下软引用和弱引用. ...

  7. SecureCRT介绍、安装、使用

    简介 SecureCRT是一款支持SSH(SSH1和SSH2)的终端仿真程序,简单地说是Windows下登录UNIX或Linux服务器主机的软件. SecureCRT支持SSH,同时支持Telnet和 ...

  8. MVC 简单发送邮件示例

    没啥好说的 直接上代码 @{ try { WebMail.SmtpServer = "smtp.qq.com";//SMTP邮件服务器 WebMail.SmtpPort = ;// ...

  9. 51nod1437 迈克步

    傻叉单调栈 #include<cstdio> #include<cstring> #include<cctype> #include<algorithm> ...

  10. 一、HTML4背景知识

    前言 本教程针对已经基本熟悉HTML4基本标签的人. HTML的发展历程 HTML 1.0: 1993年6月由IETF(Internet Engineering Task Force, 互联网工程工作 ...