page contents

C#中[WebMethod]的用法,aspx、ashx、asmx

本文讲述了C#中[WebMethod]的用法,aspx、ashx、asmx!具有很好的参考价值,希望对大家有所帮助。一起跟随六星小编过来看看吧,具体如下:

attachments-2022-08-KqR54yGF62e87e569f459.png

本文讲述了C#中[WebMethod]的用法,aspx、ashx、asmx!具有很好的参考价值,希望对大家有所帮助。一起跟随六星小编过来看看吧,具体如下:

在.net 3.5的状况下html

前台JQuery作Ajax的时候,服务器端web

(1)能够调用aspx.cs 中声明带有[WebMehtod]的public static 的方法(不须要本身手动添加web.config的配置)ajax

(2)能够调用 *.asmx (web服务) 里面加了[webmethod]的方法(不能写静态,写静态就调用不到了)须要在asmx里面 去掉 [System.Web.Script.Services.ScriptService] 的注释 json

(3)能够调用 *.ashx (通常处理程序),它和aspx同样都实现了IHttpHandler接口。数组

方法调用也分不一样返回状况:服务器

  • 无参数的方法调用    public static string SayHello(){}   
  • 带参数的方法调用     public static string GetStr(string str, string str2)
  • 返回数组方法的调用   public static List<string> GetArray()

例如:mvc

(1)aspx.cs 静态方法[WebMethod]app

[WebMethod]   
public static string SayHello()   
{   
     return "Hello Ajax!";   
}
$(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;   
    });   
});

(2)WebService1.asmx异步

/// 返回泛型列表 
    [WebMethod]
    public List<int> CreateArray(int i)
    {
       List<int> list = new List<int>(); 
       while (i >= 0)
       {
           list.Add(i--);
       } 
       return list;
    }
//返回泛型列表
    $("#btnArray").click(function(){
       $.ajax({
         type: "POST",
         contentType:"application/json",
         url:"WebService1.asmx/CreateArray",
         data:"{i:10}",
         dataType:'json',
         success:function(result){                    
             alert(result.d.join(" | "));
           }
        });
    });
(3)handler处理程序
$("#dbtn").click(function() {  
  $.ajax({ 
     type: "POST",  
     dataType:"Text", 
     url: "AjaxHandler.ashx", 
     data: { name: "admin", pass: "admin" },  
     beforeSend: function() { $("#ds").html("loading"); },  
     success: function(msg) { $("#ds").html("<p>" + msg + "</p>"); }  
    }); 
});

 参考:http://blog.csdn.net/lovegonghui/article/details/49072363async

从WebMethod属性不难看出这实际上仍是应用了webservice组件的方式来实现的。固然ajax实现异步请求的资源能够使aspx、ashx、webservice等

//标准的写法:
$.ajax({
     type: "post",
     dataType: "json",
     contentType: "application/json", //注意:WebMethod()必须加这项,不然客户端数据不会传到
服务端
     data:{如上所述},//注意:data参数能够是string个int类型
     url: "List.aspx/DeleteNews",//模拟web服务,提交到方法
     // 可选的 async:false,阻塞的异步就是同步
     beforeSend:function(){
          // do something.
          // 通常是禁用按钮等防止用户重复提交
          $("#btnClick").attr({disabled:"disabled"});
          // 或者是显示loading图片
     },
     success: function (data) {
          alert("success: " + data.d);//注意这里:必须经过data.d才能获取到服务器返回的值
          // 服务端能够直接返回Model,也能够返回序列化以后的字符串,若是须要反序列化:string json = JSON.parse(data.d);
          // 有时候须要嵌套调用ajax请求,也是能够的
     },
     complete: function(){
          //do something.
          $("#btnClick").removeAttr("disabled");
          // 隐藏loading图片
     },
     error: function (data) {
          alert("error: " + data.d);
     }
});

而mvc中的ajax异步请求

因为mvc采用基于路由映射,因此Controller中的Action能够直接经过url请求。

更多相关技术内容咨询欢迎前往并持续关注六星社区了解详情。

想高效系统的学习Python编程语言,推荐大家关注一个微信公众号:Python编程学习圈。每天分享行业资讯、技术干货供大家阅读,关注即可免费领取整套Python入门到进阶的学习资料以及教程,感兴趣的小伙伴赶紧行动起来吧。

attachments-2022-05-rLS4AIF8628ee5f3b7e12.jpg

  • 发表于 2022-08-02 09:31
  • 阅读 ( 595 )
  • 分类:C/C++开发

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
轩辕小不懂
轩辕小不懂

2403 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1312 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章