首页 新闻 会员 周边 捐助

JS调用DLL(C#)

1
悬赏园豆:50 [已解决问题] 解决于 2015-11-26 16:33

一些现成的接口是用.net写的,已经封装好了,现在想通过JS来调用这些dll,但是目前一点头绪也没有,希望高人指点一下。

贝尔格里尔斯的主页 贝尔格里尔斯 | 初学一级 | 园豆:6
提问于:2015-11-26 14:01
< >
分享
最佳答案
1

上面二位说的就是使用ajax,利用POST或者是GET方法发送请求到后台,这就是调用方法的实现。

例如:用jquery的ajax

js代码:

 1 function getUserInfo()
 2 {
 3     $.ajax({
 4         type: 'GET',
 5         url: './UserHandler.ashx' ,
 6         data: {'name':'xxx','age':20} ,
 7         success: function(res){
 8             //res是请求返回的json对象
 9         } ,
10         dataType: 'json'
11     });
12 }

api方法(UserHandler.ashx):

 1 public void GetUserInfo()
 2 {
 3     string name = Request.Param["name"].ToString();
 4     string age = Request.Param["age"].ToString();
 5     string json = "";
 6     //做相关处理
 7     //转换为json字符串
 8 
 9     //返回json字符串
10     Response.Write(json);
11     Response.End();
12 }

 

还有就是,既然是.NET开发的,页面中的按钮等事件是可以直接调用后台的方法的。

收获园豆:50
CodeHsu | 大侠五级 |园豆:5668 | 2015-11-26 16:08

如果新建.ashx的话,需要创建asp.net项目,,但是我需要直接在HTML里面的JS中调用。

贝尔格里尔斯 | 园豆:6 (初学一级) | 2015-11-26 16:19

@贝尔格里尔斯: 既然这样,你已经有接口了,直接用ajax去请求接口就好了

CodeHsu | 园豆:5668 (大侠五级) | 2015-11-26 16:24

@SeayXu: 那又ajax如何请求接口?

贝尔格里尔斯 | 园豆:6 (初学一级) | 2015-11-26 16:32

@贝尔格里尔斯: 这样说比较累,你加我qq告诉你吧,我的资料中有qq

CodeHsu | 园豆:5668 (大侠五级) | 2015-11-26 16:36
其他回答(8)
0

用ajax去后台调用啊

刘宏玺 | 园豆:14020 (专家六级) | 2015-11-26 14:17

能不能详细点,说哈大概需要做那些事情

支持(0) 反对(0) 贝尔格里尔斯 | 园豆:6 (初学一级) | 2015-11-26 14:20
0

调用dll,可以在后台处理好,然后用ajax请求的办法就能获取其中资源。

Anvy-Wang | 园豆:171 (初学一级) | 2015-11-26 15:32

DLL编译好之后还需要干什么吗?

支持(0) 反对(0) 贝尔格里尔斯 | 园豆:6 (初学一级) | 2015-11-26 15:34

@贝尔格里尔斯:没有看明白你说的Dll编译好之后是什么意思?你需要变异什么?

支持(0) 反对(0) Anvy-Wang | 园豆:171 (初学一级) | 2015-11-26 15:36

@Anvy-Wang: 就是在vs里面生成dll之后,就可以通过ajax老调用了吗?

支持(0) 反对(0) 贝尔格里尔斯 | 园豆:6 (初学一级) | 2015-11-26 15:38
0

js --> .ashx --> dll

jello chen | 园豆:7336 (大侠五级) | 2015-11-26 15:41

大虾,这样我很难理解呀,能不能再详细一点点啊

支持(0) 反对(0) 贝尔格里尔斯 | 园豆:6 (初学一级) | 2015-11-26 15:44

@贝尔格里尔斯:

1.引用dll,创建ashx,在处理方法中调用dll方法,可通过参数区分

2.js中ajax去向该ashx处理程序get/post请求

支持(0) 反对(0) jello chen | 园豆:7336 (大侠五级) | 2015-11-26 15:49
0

js代码不能直接访问dll,因为平台不一样。

因此只能通过web服务来调用,一般都是使用js向一个web地址发送一个请求,这个地址的背后,就是那所说的那个dll.

web地址,就是通畅所说的uri。

就是说,js和dll中间,是通过网络请求联系起来的。实现方式有上面说的ashx、wcf、webapi等,这些都是asp.net的相关技术。

虾。 | 园豆:257 (菜鸟二级) | 2015-11-26 22:00

请求发送到的url应该做什么处理?

支持(0) 反对(0) 贝尔格里尔斯 | 园豆:6 (初学一级) | 2015-11-27 09:18

@贝尔格里尔斯: asp.net已经将请求处理封装好了。Asp.net会直接根据你请求的uri调用HttpHandle,例如一楼中的 GetUserInfo()。对于webapi,会直接调用控制器等等。

支持(0) 反对(0) 虾。 | 园豆:257 (菜鸟二级) | 2015-11-27 09:22

@虾。: 你哪儿有没有现成的实例,能发我一份吗?

支持(0) 反对(0) 贝尔格里尔斯 | 园豆:6 (初学一级) | 2015-11-27 09:25

@贝尔格里尔斯: 你什么版本的.net

支持(0) 反对(0) 虾。 | 园豆:257 (菜鸟二级) | 2015-11-27 09:28

@虾。: 3.5、4.0和4.5的都有

支持(0) 反对(0) 贝尔格里尔斯 | 园豆:6 (初学一级) | 2015-11-27 09:29

@贝尔格里尔斯: 

http://www.cnblogs.com/xumingxiang/tag/ashx%2Fasmx/

支持(0) 反对(0) 虾。 | 园豆:257 (菜鸟二级) | 2015-11-27 10:47
0

ajax

于为源 | 园豆:956 (小虾三级) | 2015-11-30 12:51
0

其实你没说清楚,js调用dll,是通过服务调用dll还是你想直接dlr驱动dll,你说清楚再问吧。

老三的古代 | 园豆:183 (初学一级) | 2015-12-03 16:37
0

可以调用的,以前那种读卡器就提供有控件,一个DLL文件,本地浏览器打开就会提示安装。

不过现在肯定不行了,因为安全因素,未签名的控件都不允许安装,除非你把浏览器安全级别降低。

缤纷夏日 | 园豆:425 (菜鸟二级) | 2015-12-04 12:03
0

。。。你想问的是怎么用js直接调用dll里对外提供的方法吧。。。不能调的,封装可以对外输出的接口吧

AndioM | 园豆:214 (菜鸟二级) | 2015-12-04 14:28
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册