首先我要说,jquery与后台的交互,最佳选择是webservice。而不是访问页面中的某一个方法。

 

因为前段时间为这个问题纠结了很久。有人说可以有人说不可以。为此进行了一番争论。最终结果是:可以。

 

 

CS代码
//其他无关引用已经删除
using System.Web.Services;
namespace ZYWeb
{
    
public partial class _Default : System.Web.UI.Page
    {
        
protected void Page_Load(object sender, EventArgs e)
        {

        }
        [WebMethod]
        
public static string f()
        {
            
return "hello from server";
        }
    }
}
 

 

 

 

代码
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="ZYWeb._Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    
<title>无标题页</title>
<!--这里是导入jquery库,请根据自己的实际情况来写-->
    
<script type="text/javascript" src="Scripts/J.js"></script>
    
<script type="text/javascript">
    $
    (
        
function()
        {
            $(
"#bt").click
            (
                
function()
                {
                    $.ajax
                    (
                    {
                        type:
"post",
                        url:
"default.aspx/f",/*页面地址/方法名称,和使用webservice的方法是一样的*/
                        contentType:
"application/json"
                        success:
function(a)/*a是返回的数据。json*/
                        {
                            alert(a.d);
                        }
                    }
                    )
                }
            )
        }
    )
    
</script>
</head>
<body>
    
<form id="form1" runat="server">
<input type="button" value = "click" id="bt"/>
        
</form>
</body>
</html>

 

需要调用的方法要加上[WebMethod]标记

有人说后台要调用的方法必须是静态方法,这一点还没来得及验证。希望验证过的朋友给个准。

我的公众号活动: 1块钱抢Iphone6s>>

js中,有人说,如果没有参数,data也必须写,写成data:"{}",

经过验证,并不是必须的。没有参数时,可写可不写。

包含参数的还没有验证。

 

有人说只有asp.net3.5中才可以这样使用。但是经过实际操作,已经验证3.5,2.0都可以使用此方法。只不过2.0中还需要修改配置文件,其他地方都一样。

代码
<?xml version="1.0"?>
<configuration>
    
<system.web>
 
<httpModules>
        
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
      
</httpModules>
    
</system.web>
</configuration>

 

 

 

 

 

posted on 2010-09-10 22:39  孙华勇  阅读(476)  评论(2编辑  收藏  举报