我们正在使用VS2008。我们调用ActiveX shell脚本对象,它是作为EXE可执行文件创建的,它读取Pinpad进行身份验证并返回结果。在ASPX页面的Javascript中调用此对象。
获得结果后,我们需要存储我们在C#代码后面编写的信息。
我的问题是,我们应该如何在ASPX java脚本中调用代码或WCF服务。
我的java脚本代码如下:
function launchExecutable(strdata) {
try {
var shellActiveXObject = new ActiveXObject("WScript.Shell");
shellActiveXObject.Run("c:\\Test\\EBCK.exe " + strdata, 1, true);
}
catch (e) {
alert(e.message);
}
try {
var abc = window.clipboardData.getData('Text');
// from here we have to call the C# code which is written in CS file or
// call a WCF Web service
}
catch (e) {
alert(e.message);
}
}
答案 0 :(得分:1)
在javascript中调用wcf服务可以使用ScriptManager。例如:
<asp:scriptmanager id="ScriptManager1" runat="server">
<services>
<asp:servicereference path="http://localhost:61586/Service1.svc">
</services>
在上面的代码中,请注意servicereference设置为托管在另一个域上的WCF服务。
使用makeCall:
function makeCall() {
var proxy = new JsonpAjaxService.Service1();
proxy.set_enableJsonp(true);
proxy.GetCustomer(onSuccess, onFail, null);
}
您可以使用 onSuccess 从服务调用中获取结果并显示数据。
function onSuccess(result) {
alert( result.Name + " " +result.Address);
}
如果服务器失败,您可以使用 onFail 。
希望这有帮助。
答案 1 :(得分:0)
您可以将值存储在隐藏字段中并回发页面。在页面回发时访问后面代码中的隐藏字段值。
<asp:Hidden Id="hid" value="" runat="server">
要在javascript中回发页面,请使用__doPostback。
答案 2 :(得分:0)
您可以在页面上添加脚本管理器
并使用[webmethod]
属性创建一个静态方法,并从JQuery或javascript调用该方法