从Javascript调用代码背后的C#代码

时间:2012-07-25 05:58:58

标签: c# javascript

我们正在使用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);
        }

}

3 个答案:

答案 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调用该方法