首页 新闻 会员 周边

有关Asp.net中的WebMethod属性方法

0
[已解决问题] 解决于 2014-10-06 21:58

通过ajax调用后台代码时,可以直接访问后台添加了WebMethod属性的方法,不知道这样做有没有什么缺点或什么特别的限制的?

youyi000的主页 youyi000 | 菜鸟二级 | 园豆:205
提问于:2014-09-04 23:08
< >
分享
最佳答案
0

没什么限制。在我们开发WebService的时候,Service的类里可能会有很多的方法,或者保留,或者有其他用途,如果这些方法都是public的话~~~前端就可能都看到,从安全角度而言,是不好的,因此有了WebMethod,只有被这个特性标记的方法,.net才会输出让前端可见(可以使用)。

 

此外,在ASPX页面里,其对应的aspx.cs文件里的public方法也是一样。原本这里的方法无论是否public都不能被外面(前端)直接调用,必须走aspx页面访问流程,由页面生存周期的各类事件去触发,而如果通过webmethod标记了的方法,则可以直接使用,使用方式是:page.aspx/method,这样是否简单多了?可以直达黄龙呢!(嘿嘿)。不过,我忘记了这个方法是否必须静态的了(貌似需要静态方法)。

奖励园豆:5
519740105 | 大侠五级 |园豆:5810 | 2014-09-05 06:40

必须静态方法才行,一直在用,就是不知道这样与完全的WebService的相比有什么优缺点的,谢了。

youyi000 | 园豆:205 (菜鸟二级) | 2014-09-05 11:55

@youyi000: 没有什么优缺点的,在于习惯与喜欢。

如果是WebService,那么意味着你要做很多,比如专门写一个Service,调用的时候要么引用WSDL生成解析,要么自己构建SOAP,但用WebService显得专业以及便于以服务的方式公开。

而用页面静态函数则简单点,不需要考虑太多的东西,直接用。

其实,现在的MVC里的WebAPI,也可以说是WebService与站点应用整合的一个方案。

519740105 | 园豆:5810 (大侠五级) | 2014-09-05 13:34
其他回答(1)
0

1、静态的public方法
2、WebMethod方法只接受POST类型请求

某猿 | 园豆:373 (菜鸟二级) | 2014-09-05 09:33

使用方式我知道,就是想了解一下这样的用法有什么优缺点,感觉这样的方式与MVC里面的方式挺像的。

支持(0) 反对(0) youyi000 | 园豆:205 (菜鸟二级) | 2014-09-05 11:57

@youyi000: 觉得比一般文件使用起来方便,多个方法可以写在同一个页面中,便于维护;目前只有这么点感触,观注一下其他朋友的分享

支持(0) 反对(0) 某猿 | 园豆:373 (菜鸟二级) | 2014-09-05 12:01
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册