繁体   English   中英

不使用ajax从javascript调用服务器端函数

[英]calling a server side function from javascript without using ajax

我正在尝试执行以下操作:

function redirectContactOnClick(contactId) {
            var enc=<%= QueryStringModule.Encrypt("cont="+ contactId)%>;
            alert(enc);
            //window.location = "Contacts/AddEditContact.aspx";
        }

QueryStringModule.Encryptc# class内的一个函数,该页面引发错误,提示: The name 'contactId' does not exist in the current context

您将无法将javascript变量( contactId )传递给C#方法。 建议为此寻找一个不同的解决方案,例如,制作通用Web处理程序(.ashx)并通过ajax将contactId传递到那里,然后从Encrypt调用中获取所需的内容。

您可以从javascript调用服务器端(C#)函数。 首先,将脚本包含在服务器上可运行的ScriptManager中。 然后,javascript函数可以调用c#函数(其属性为[System.Web.Services.WebMethod]并且必须是静态的)。

例如。

 PageMethods.QueryStringModule.Encrypt("cont="+ contactId);

在客户端,以及

  [System.Web.Services.WebMethod]
  public static void Encrypt(string id)
  {
       // Do something
  };

在服务器端

(来源: http : //www.codeproject.com/Questions/727256/how-to-call-server-side-function-from-javascript

要调用服务器端成员,唯一的模式是执行请求HTTP或同步(POST页面)或异步(AJAX)

您不直接调用服务器功能

在你的情况下

收到错误,因为contactId不是页面的成员,您可以通过以下方式进行通信

ASP.NET客户端到服务器的通信

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM