在不使用ajax的情况下从javascript调用服务器端函数

在不使用ajax的情况下从javascript调用服务器端函数,javascript,c#,Javascript,C#,我正在努力做到以下几点: function redirectContactOnClick(contactId) { var enc=<%= QueryStringModule.Encrypt("cont="+ contactId)%>; alert(enc); //window.location = "Contacts/AddEditContact.aspx"; } 功能重定向ContactOn

我正在努力做到以下几点:

function redirectContactOnClick(contactId) {
            var enc=<%= QueryStringModule.Encrypt("cont="+ contactId)%>;
            alert(enc);
            //window.location = "Contacts/AddEditContact.aspx";
        }
功能重定向ContactOnClick(contactId){
var enc=;
警报(enc);
//window.location=“Contacts/AddEditContact.aspx”;
}

QueryStringModule.Encrypt
c#类
中的一个函数,该页面会出现一个错误,提示:
名称“contactId”在当前上下文中不存在
您将无法将javascript变量(
contactId
)传递给c#方法。建议为此寻找一种不同的解决方案,例如,制作通用Web处理程序(.ashx),并通过ajax将您的contactId传递到那里,然后从您的
加密
调用中返回您期望的任何内容。

对于调用服务器端成员,唯一的模式是执行请求HTTP或同步(后期页面)o异步(ajax)

您不直接调用服务器函数

在你的情况下

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

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

例如

在客户端,以及

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


(来源:)

请发布你的类。contactId是私有的?我更新了我的问题,我认为不是类导致了问题:/n你知道JS在客户端(浏览器)上执行,C在服务器上执行吗?你的C代码(实际上是编译器)不知道contactId是什么。比如:@Sora:你必须以某种方式将contactId从客户端发送到服务器。Ajax是你应该达到的第一个选项。类似于“我不想使用[明显的第一选择]”这样的语句我不想使用ajaxAs alternative,你可以创建另一个接受contactId的页面,只需将你重定向到另一个页面,该页面将加密你的contract并重定向到Contacts/AddEditContact.aspx或任何你想要的地方。来源:欢迎使用StackOverflow。如果你愿意,只需单击即可在你的帖子中改变一些东西,所以没有必要使用评论。
  [System.Web.Services.WebMethod]
  public static void Encrypt(string id)
  {
       // Do something
  };