调用Javascript函数并从ASP .NET返回值

时间:2008-10-07 18:31:11

标签: asp.net asp.net-ajax asp.net-2.0

让我们在我的页面上说我有这个功能:

 function ReturnFoo(bar)
 {
   return bar.toString() + "foo";
 }

现在,我想从ASP .NET调用它,希望使用ASP .NET AJAX框架,因为我已经在这个代码库中使用它(我已经花了100k,不妨使用它)。

此外,我想取回从此函数返回的输出,然后将其分配给在服务器端创建的变量。这仅限于ASP .NET 2.0

8 个答案:

答案 0 :(得分:1)

是的,这是一个困难的问题。使用MS Ajax会帮助你。您需要从服务器推入代码以在页面加载时调用此函数,并将返回值分配给隐藏字段,服务器可以在回发时访问该字段。

我必须说这个解决方案很糟糕,但我不知道另一种方式。希望有人能有更好的解决方案。

答案 1 :(得分:1)

简单地写下你必须调用javascript的地方

回复于( “alert('hello');”)

答案 2 :(得分:0)

我看不出您希望服务器端代码如何调用客户端函数???

AJAX调用是从客户端到服务器端的!

答案 3 :(得分:0)

之前我已经使用了一个标记为隐藏的文本控件,并在更改时使用了autopostback。然后,该函数设置该控件的文本,该文本触发回发。

要从服务器端调用该函数,只需注册一些启动脚本,它将在页面呈现时运行。

答案 4 :(得分:0)

如果您打算在服务器端和客户端重用某些功能,我建议在服务器端(aspx或asmx)编写该功能,并使用AJAX从客户端(JavaScript)调用它。不确定你是否在寻找这个。

答案 5 :(得分:0)

无论何时在服务器端和客户端之间进行转换,就像用户在性能方面点击浏览器上的刷新按钮一样。

这真的是你想要做的,因为你提出的场景意味着至少有两个回发。

这是为了什么目的?如果你能把它保存在客户端会更好。

答案 6 :(得分:0)

在第一个答案中,Matt提到这是不可能的(在服务器上执行客户端代码时)。这是真的。

您对silverlight的评论并不准确。 Silverlight无法从服务器调用客户端代码。 Silverlight就像JavaScript一样在客户端上运行,因此这是客户端到客户端的调用。

你能否澄清一下这个场景......这就是我认为你在问的问题:

private void Page_Load()
{
    string someValue = EXECUTE_JS_ON_CLIENT_AND_GET_RESULT();

    // do some stuff here while still on the server...
}

如果这是你想要做的,那是不可能的。在服务器上,您无法与客户端通信。

这是你的意思吗?

谢谢, -Timothy

答案 7 :(得分:0)

我会查看JSON.Net(结合库[jQuery也是免费的])它们是开源解决方案,使这些问题变得更加容易。