这个当然不用说大家都知道的一种就是ajax调后台的方法。
1、有参数的方法调用
示例代码如下:
前台jQuery代码:
$(function() {
var browers = browersEstimate();
var params = '{browersType:"' + browers + '"}';
$.ajax({
type: "POST", //提交方式
url: "Default.aspx/RecordData", //提交的页面/方法名
data: params, //参数(如果没有参数:null)
dataType: "json", //类型
contentType: "application/json; charset=utf-8",
success: function(data) {
//返回的数据用data.d获取内容
alert(data.d);
},
error: function(err) {
alert(err);
});
});
这个是jquery下Ajax方法调用后台方法。
这个方法有几点需要说明:
type方式必须是post,再有就是后台的方法必须是静态的,方法声明要加上特性[System.Web.Services.WebMethod()],传递的参数个数也应该和方法的参数相同。
asp.net后台方法:
[System.Web.Services.WebMethod()]
public static void RecordData(string browersType)
{
if (BrowserControl.Counters == null)
{
BrowserControl.InitData(0);
}
if (browersType == "")
{
browersType = "Other";
}
BrowserControl.AddOneByBrowserType(browersType);
if (BrowserControl.WriteInDataBase())
{
BrowserControl.OldTotalCount = BrowserControl.Counters.Count;
}
else
{
BrowserControl.OldTotalCount = 0;
}
}
2、无参数的方法调用
示例代码:
前台jQuery代码
$(function() {
$("#btnOK").click(function() {
$.ajax({
//要用post方式
type: "Post",
//方法所在页面和方法名
url: "data.aspx/SayHello",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(data) {
//返回的数据用data.d获取内容
alert(data.d);
},
error: function(err) {
alert(err);
}
});
//禁用按钮的提交
return false;
});
});
asp.net后台方法
[System.Web.Services.WebMethod()]
public static string SayHello()
{
return "Hello Ajax!";
}
3、返回数组方法的调用
示例代码:
asp.net 后台代码:
[System.Web.Services.WebMethod()]
public static List GetArray()
{
List li = new List();
for (int i = 0; i < 10; i++)
li.Add(i + "");
return li;
}
前台JQuery代码:
/**/
$(function() {
$("#btnOK").click(function() {
$.ajax({
type: "Post",
url: "data.aspx/GetArray",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(data) {
//插入前先清空ul
$("#list").html("");
//递归获取数据
$(data.d).each(function() {
//插入结果到li里面
$("#list").append("" + this + "");
});
alert(data.d);
},
error: function(err) {
alert(err);
}
});
//禁用按钮的提交
return false;
});
});
4、返回Hashtable方法的调用
using System.Collections;
[System.Web.Services.WebMethod()]
public static Hashtable GetHash(string key,string value)
{
Hashtable hs = new Hashtable();
hs.Add("www", "yahooooooo");
hs.Add(key, value);
return hs;
}
前台JQuery代码:
$(function() {
$("#btnOK").click(function() {
$.ajax({
type: "Post",
url: "data.aspx/GetHash",
//记得加双引号
data: "{ 'key': 'haha', 'value': '哈哈!' }",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(data) {
alert("key: haha ==> "+data.d["haha"]+" key: www ==> "+data.d["www"]);
},
error: function(err) {
alert(err + "err");
}
});
//禁用按钮的提交
return false;
});
});
5、操作xml
xnl文件示例:
<?xml version="1.0" encoding="utf-8" ?>
<data>
<item>
<id>1</id>
<name>qwe</name>
</item>
<item>
<id>2</id>
<name>asd</name>
</item>
</data>
Jquery代码:
$(function() {
$("#btnOK").click(function() {
$.ajax({
url: "XMLtest.xml",
dataType: 'xml', //返回的类型为XML ,和前面的Json,不一样了
success: function(xml) {
//清空list
$("#list").html("");
//查找xml元素
$(xml).find("data>item").each(function() {
$("#list").append("id:" + $(this).find("id").text() +"");
$("#list").append("Name:"+ $(this).find("name").text() + "");
})
},
error: function(result, status) { //如果没有上面的捕获出错会执行这里的回调函数
alert(status);
}
});
//禁用按钮的提交
return false;
});
});
6、调后台的另外一种方法:
js代码示例:
function test() {
var browers = browersEstimate();
__doPostBack("CE_RecordData", browers);
}
后台页面代码示例:
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
if (this.IsPostBack)
{
if ((Request.Form["__EVENTTARGET"] != null) && (Request.Form["__EVENTTARGET"] != ""))
{
if (Request.Form["__EVENTTARGET"].Substring(0, 3) == "CE_")
{
String strEventArgument = Request.Form["__EVENTARGUMENT"];
Type type = this.GetType();
MethodInfo mi = type.GetMethod(Request.Form["__EVENTTARGET"], BindingFlags.Instance | BindingFlags.NonPublic);
if (mi != null)
{
mi.Invoke(this, new object[] { strEventArgument });
}
}
}
}
}
protected void CE_RecordData(string browersType)
{ -----你需要做的操作----- }
如上代码解释:主要是js代码里面的方法名要与后台一致,方法参数个数也要一致,最重要的是页面的OnLoad事件的重写。在这里面调用的父类的OnLoad事件,重要是利用反射获取要调用的方法,和传递过来的参数。
type.GetMethod(Request.Form["__EVENTTARGET"], BindingFlags.Instance | BindingFlags.NonPublic);这一句里面的参数设置不能变更。必须是实例Instance和不公开的方法。可以看到对应的CE_RecordData方法是受保护的。
分享到:
相关推荐
### ASP.NET 前台调用后台方法传参数详解 #### 一、ASP.NET简介 ASP.NET 是一种用于构建动态Web应用程序的服务器端技术。它由Microsoft开发,并且是.NET框架的一部分。通过ASP.NET,开发者可以创建功能强大、交互...
本篇文章将详细讲解如何在ASP.NET中实现在前台显示后台处理进度条。 首先,我们需要理解ASP.NET的异步处理机制。在ASP.NET中,页面生命周期分为多个阶段,如初始化、加载、回发数据、验证、保存状态和卸载等。当...
在前台调用后台变量时,如果后台传递的数据为String类型,而前台需要其他类型的数据,可以使用DataBinder.Eval方法进行类型转换。例如使用DataBinder.Eval(Container.DataItem,"转换的类型")将Container.DataItem中...
ASP.NET中后台C#数组与前台JS数组交互 在ASP.NET中,后台C#数组与前台JS数组的交互是一个常见的问题。前台JS数组需要从后台C#数组中获取数据,而后台C#数组则需要从数据库中获取数据。下面我们将详细介绍如何实现这...
本文将深入探讨ASP.NET中前台JavaScript与后台代码调用的技术细节,包括IPostBackEventHandler接口的使用、ClientScript对象的功能以及如何通过__doPostBack函数实现前后端的通信。 ### ASP.NET中前后端通信的基础 ...
.NET 前台调用后台方法以及后台调用前端JavaScript是Web开发中常见的交互方式,尤其是在ASP.NET框架中。以下是对这两种技术的详细说明: **一、前台调用后台方法** 1. **OnClientClick**:ASP.NET的控件属性,如...
这是一个用于as.net网页的弹出层对话框的实例,原本弹出提示可以使用alert('lcng'),但是由于不太友好,而且不太美观,后来才想自己做一个,当然了网上也有许多弹出对话框的jquery插件,不过平常使用的时候...
在"ASP.NET完整实现查询前台、后台视频"这个项目中,我们主要关注的是如何利用ASP.NET来处理前后台视频查询的功能,同时也涉及到HTML框架技术和动态加载人员菜单的技术。 首先,让我们深入了解ASP.NET的核心特性。...
在这个“ASP.NET 图书的后台管理与前台服务”项目中,主要涉及到了几个关键的技术点: 1. **数据库管理**: - 数据库是存储图书信息的核心,通常会使用如SQL Server或MySQL等关系型数据库。在这个系统中,可能包含...
### 一、前端调用后台方法 1. **`OnClientClick`**: 在ASP.NET中,`OnClientClick`属性用于指定按钮等控件被点击时执行的JavaScript函数。例如: ```html <asp:Button ID="Button1" runat="server" Text=...
这个"新闻反馈前台+后台管理"项目是基于Asp.NET技术实现的一个完整系统,涵盖了用户交互的前端以及后台数据处理和管理功能。 在前端部分,"新闻反馈"模块通常包括展示最新新闻、用户提交反馈的表单以及对已有反馈的...
Asp.net 中 jQuery、ajax 调用后台方法总结 在 Asp.net 中,使用 jQuery 和 Ajax 调用后台方法是一种常见的做法。下面总结了几种常见的调用方法。 有参数的方法调用 在前台使用 jQuery 代码调用后台方法时,需要...
在.NET开发中,前端与后端的交互是常见的需求,特别是在构建动态网页时。...总的来说,通过AjaxPro,我们可以轻松地在.NET前台页面中调用后台方法,实现异步通信,提高应用程序的响应性和用户交互体验。
### ASP.NET中前台javascript与后台代码调用 #### Session结束的时机 在ASP.NET应用程序中,Session状态管理是一项重要的功能,用于跟踪用户的会话状态。Session会在以下几种情况下结束: 1. **用户长时间未与...
在标题和描述中提到的"前台直接调用后台方法",正是ASP.NET AJAX的核心特性之一,即通过AJAX调用在客户端实现对服务器端方法的调用,从而提高用户体验。 ASP.NET AJAX主要由两部分组成:客户端库(MicrosoftAjax.js...
3. 提供单一后台支持多前台应用配置 4. 提供单点登录 5. 集成系统认证授权模块 6. 提供角色,部门,用户,菜单,前台应用程序授权 角色对用户授权 角色对菜单授权 角色对部门授权 角色对应用程序授权(多个前台...
ASP.NET中前台javascript与后台代码调用 1如何在JavaScript访问C#函数? 2.如何在JavaScript访问C#变量? 3.如何在C#中访问JavaScript的已有变量? 4.如何在C#中访问JavaScript函数? 问题1答案如下: javaScript函数中...
ASP.NET后台框架是一种基于Microsoft .NET Framework的Web应用程序开发框架,用于构建强大的、高性能的、交互式的Web应用。此框架通常结合C#或VB.NET等编程语言使用,为开发者提供了丰富的工具和库,使得构建复杂的...
这是一个关于后台管理前台的系统,通过后台的操作,在前台动态显示。本网站使用vs2008,asp.net3.0编写。代码编写对初学者是很容易,因为我也是一个初学者。如有疑问可以叫我QQ:562257748~!