我的代码背后有一个网络方法:
[System.Web.Services.WebMethod]
public static string GetStateData(string state)
{
//this is where i want to call a javascript method "GetItems"
}
我有一个javascript方法可以为我检索一些值,我希望在我的web方法中使用其中一个值
function GetItems() {
var variable1= $("#<%=Item1.ClientID %> input:checked");
var variable2= $("#<%=Item2.ClientID %>").val();
return [variable1.text(), variable2.val(), variable2];}
我已经搜索了从web方法调用javascript方法的方法,但每次我的搜索都会导致如何从javascript调用web方法。
我确实找到了这个,但它是从一个silverlight项目的代码隐藏完成的,当我尝试添加正确的引用到我的代码隐藏时它不存在
var result = HtmlPage.Window.Invoke("GetItems");
我有遗失的参考吗?
感谢您的回复
答案 0 :(得分:3)
你做不到。您通过AJAX调用web方法。您将小块信息发送到服务器上的静态方法,该方法对特定页面对象一无所知(这不是静态的)。
您要做的是将AJAX调用中的值和数据发送到web方法。你没有做一个完整的回发,所以你对页面的当前状态一无所知,除了你作为参数传递给webmethod的东西。
要么首先发送信息,要么在需要信息时返回某种标志,并让客户端使用该信息将ajax回调给另一个函数并让它从那里继续。
答案 1 :(得分:0)
不是尝试从web方法调用javascript,而是使用webmethod的返回值来决定要调用的javascript函数。
据我所知,从web方法调用javascript是不可能的 - 你需要理解服务器端和客户端代码之间的区别。