如何使用asp.net脚本标记从javascript向类方法传递参数
我想从javascript调用类的一个方法 在javascript中,我正在做这样的事情如何使用asp.net脚本标记从javascript向类方法传递参数,javascript,asp.net,tags,Javascript,Asp.net,Tags,我想从javascript调用类的一个方法 在javascript中,我正在做这样的事情 <%=myMethod("abc")%> 那么我如何传递这个变量呢 我试过了 <%= myMethod(myValue) %> 但它不能识别myValue变量在代码隐藏中定义一个返回变量值的函数,并呈现为: <%= myMethod(MyValueGet()) %> Javascript在用户计算机上执行(客户端代码)。ASP.NET在服务器上执行(服务器端代码
<%=myMethod("abc")%>
那么我如何传递这个变量呢
我试过了
<%= myMethod(myValue) %>
但它不能识别myValue变量在代码隐藏中定义一个返回变量值的函数,并呈现为:
<%= myMethod(MyValueGet()) %>
Javascript在用户计算机上执行(客户端代码)。ASP.NET在服务器上执行(服务器端代码) 无法将javascript变量直接传递给ASP.NET函数。要将某些状态从客户端传递到服务器,必须向服务器发出请求(通常是GET或POST),包括javascript变量
进一步阅读:要调用传递客户端变量的代码隐藏函数,可以发送javascript ajax调用,并将服务器方法定义为webservice方法。这有助于:
我认为您尝试调用的方法应该公开且静态。除此之外,它还应该用[WebMethod]属性修饰 在页面中隐藏代码(.aspx.cs) 和页面代码(.aspx) 添加脚本管理器(从工具箱)
并调用该方法
<script>
function Call(myValue){
PageMethods.MyMethod(myValue);
}
</script>
函数调用(myValue){
PageMethods.MyMethod(myValue);
}
您试图将javascript变量传递给服务器端函数?是的,我试图将javascript变量传递给我不理解的服务器端函数。请你解释一下,我以为这个变量是代码隐藏的(相同的符号)。通过这种方式传递javascript变量是不可能的,因为代码隐藏函数是在呈现页面之前执行的,因此javascript变量尚未设置。您可以建议其他方法吗?
public class TestPage : Page
{
[System.Web.Services.WebMethod]
[System.Web.Script.Services.ScriptMethod]
public static string MyMethod(string para)
{
return "Yes this is working " + para;
}
}
<asp:ScriptManager ID="ScriptManager1" EnablePageMethods="true" runat="server" />
<script>
function Call(myValue){
PageMethods.MyMethod(myValue);
}
</script>