我正在尝试执行以下操作:
function redirectContactOnClick(contactId) {
var enc=<%= QueryStringModule.Encrypt("cont="+ contactId)%>;
alert(enc);
//window.location = "Contacts/AddEditContact.aspx";
}
QueryStringModule.Encrypt
是c# class
内的一个函数,该页面引发错误说:The name 'contactId' does not exist in the current context
答案 0 :(得分:1)
您将无法将javascript变量(contactId
)传递给C#方法。建议为此寻找一个不同的解决方案,例如,制作Generic Web Handler(.ashx)并通过ajax传递您的contactId,并从Encrypt
调用中获取您所期望的任何内容。
答案 1 :(得分:1)
您可以从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)
答案 2 :(得分:0)
要调用服务器端成员,唯一的模式是执行请求HTTP或同步(POST页面)o async(AJAX)
您不能直接调用服务器功能
在你的情况下
收到错误,因为 contactId 不是您可以通过这些方式进行通信的网页会员