前台访问后台的几种方法

原创 2013年12月05日 21:40:19

1、WebMethod

public static方法,ajax/PageMethods调用。

后台方法,test.cs

[WebMethod]
 public static string GetUserName() 
 {
 //......
 }
需要访问操作session时
[WebMethod(EnableSession = true)]//或[WebMethod(true)]
 public static string GetUserName() 
 {
 //......
 }

前台js直接调用,test.aspx

PageMethods.GetUserName

前台ajax调用,test.js

$.ajax({
        type: "POST",
        contentType: "application/json",
        url: "WebForm2.aspx/GetUserName",
        data: "{}",
        dataType: "json",
        success: function(){.......}
    });

参数说明。
  type:请求的类型,这里必须用post。(WebMethod方法只接受post类型的请求)
  contentType:发送信息至服务器时内容编码类型,这里一定要用application/json
  url:请求的服务器端处理程序的路径,格式为"文件名(含后缀)/方法名"
  data:参数列表。
          注意,这里的参数一定要是json格式的字符串,记住是字符串格式,如:"{aa:11,bb:22,cc:33 , ...}";
          如果你写的不是字符串,那jquery会把它实序列化成字符串,那么在服务器端接受到的就不是json格式了;
          不能为空,即使没有参数也要写成"{}",如上例。很多人不成功,原因就在这里。
  dataType:服务器返回的数据类型。必须是json,其他的都无效。因为webservice 是一json格式返回数据的,其形式为:{"d":"......."}。
  success:请求成功后的回调函数。你可以在这里对返回的数据做任意处理。

上面ajax的简单封装,jquery.extend.js

///	<summary>
///     jQuery原型扩展,重新封装Ajax请求WebServeice
///	</summary>
///	<param name="url" type="String">
///     处理请求的地址
///	</param>
///	<param name="dataMap" type="String">
///     参数,json格式的字符串
///	</param>
///	<param name="fnSuccess" type="function">
///     请求成功后的回调函数
///	</param>
$.ajaxWebService = function(url, dataMap, fnSuccess) {
    $.ajax({
        type: "POST",
        contentType: "application/json",
        url: url,
        data: dataMap,
        dataType: "json",
        success: fnSuccess
    });
}

请求方法

$.ajaxWebService("WebForm2.aspx/GetUserName", "{}", function(result) {......});


2、一般处理程序(*.ashx)

处理速度比aspx快,是专为ajax服务。
接受参数用context.Request[" "];
编写多个方法使用Switch语句;
返回值用context.Response.Write( );

前台调用

DefaultHandler.ashx?method=getlist

后台CS

  using System;
  using System.Web;
  using System.Collections.Generic; 
  using System.Web.Script.Serialization;
   
  public class DefaultHandler  IHttpHandler { 
  public void ProcessRequest (HttpContext context) 
  {
  string response = string.Empty;
  string str = context.Request.QueryString["method"]; 
   
  if (string.IsNullOrEmpty(str)) 
  { 
  context.Response.Write("error!"); 
  return; 
  } 
   
  switch (str) 
  { 
  case "getlist" 
  response = GetList(context); 
  break; 
  //下边还有可以接着写. 
  } 
  context.Response.Write(response);
  context.Response.End();
   
  } 
   
  public bool IsReusable { 
  get { 
  return false; 
  } 
  } 
   
  public string GetList(HttpContext context) 
  {
   
  //从数据库取得list数据: 
  List<myEntity> data = DAL.GetData();
   
  return ToJson(data.ToArray());
   
  } 
   
  //序列化对象为json数据 
  public string ToJson(object o) 
  { 
  JavaScriptSerializer j = new JavaScriptSerializer(); 
  return j.Serialize(o); 
  }
  
  } 
   


3、web服务(*.asmx)

必须是json格式、跨浏览器、跨平台。


4、直接嵌入
前台html或者js里直接嵌入后台的public方法/属性
<%=abc()%>
 $(document).ready(function() {  
 sshow();  
 });  
   
 function sshow()  
 {    
      var s = '<%=IsShow() %>';    
      if(s == '0')  
      {  
       document.getElementById("trr").style.display= "none";       
      }else  
      {  
      document.getElementById("trr").style.display= "";   
      }  
      alert(s);  
 }  

public int IsShow()  
   {  
       int sis = 0;  
       ASPxLabel urll = (ASPxLabel)DataList1.Items[0].FindControl("ASPxLabelURL");  
       //Response.Write(urll.Text.Length);  
       //Response.Write(urll.Text.IndexOf(".", 9, 2).ToString());  
       if (urll.Text.Length > 12)  
       {  
           if (urll.Text.IndexOf(".", 9, 3) > -1)  
           {  
               sis = 1;  
           }  
       }  
       return sis;  
   } 



相关文章推荐

js前台与后台数据交互-前台调后台

由于网络太差,只能等稍后好点了再发表正文(由于文中有图片,内容多,发表多次都未成功)...

.net 前台调用后台方法

.net 前台调用后台方法

前台调用后台方法 后台调用前台JS

我给你的方法如下: 1、后台方法: protected string CsharpVoid(string strCC) { strCC = "http://" + strCC; return strC...
  • snjdju
  • snjdju
  • 2010年08月01日 18:32
  • 3616

前台通过JS请求后台的几种方法

1.1通过设置form action的路径请求后台方法  在Structs框架下的一个上传文件的例子,前台html页面部分代码: "Test!UploadFile.action" enctype=...

市委组织部项目--js调用后台方法(一)

由来:对于下载word文档和预览文档,需要根据选中行获取这条记录的文档地址和文档名称,然后点击下载或预览,将需要的参数传到后台调用相应的方法。首先想到的就是通过js获取本行的值,作为参数传递到后台调用...

js实现直接调用后台方法

一种方法是使用ajax调用 $.ajax({ type: "POST",//传输方式 url: "",//action路径 data: "",//传递参数,可有可无 success: functio...

springmvc前台访问404,不能进入controller,后台不报错问题解决方案心得

这是我第一次写博客,目的很明确,为了帮助像我一样的springmvc初学者解决一些问题,还有就时对自己返的错误的一个总结。       从文章标题不难看出,是使用springmvc时出现了404错误...

前台通过JS请求后台的几种方法

前台js请求后台的几种方法的汇总

前台传数组后台list接收

批量插入的时候经常需要传数组来解决,这里介绍一下前台怎么传数组到后台(jQuery传) 首先定义一个数组   var partTInfArr = new Array;         再定义一个空对...

C#页面前台<%%><%#%><%=%>

ASP.net前台绑定用的最多,今天小小总结一下。 1: 2: 3: 1:  主要用于需要进行更改的数据列 如:我需要将 =1 ;将1转换成女。 首先在.CS文件中定义一个方法:         ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:前台访问后台的几种方法
举报原因:
原因补充:

(最多只允许输入30个字)