让我们在我的页面上说我有这个功能:
function ReturnFoo(bar)
{
return bar.toString() + "foo";
}
现在,我想从 ASP .NET 调用它,希望使用 ASP .NET AJAX 框架,因为我已经在这个代码库中使用它(我已经花了 100k,不妨使用它)。
另外,我想取回从此函数返回的输出,然后将其分配给在服务器端创建的变量。这仅限于 ASP .NET 2.0
让我们在我的页面上说我有这个功能:
function ReturnFoo(bar)
{
return bar.toString() + "foo";
}
现在,我想从 ASP .NET 调用它,希望使用 ASP .NET AJAX 框架,因为我已经在这个代码库中使用它(我已经花了 100k,不妨使用它)。
另外,我想取回从此函数返回的输出,然后将其分配给在服务器端创建的变量。这仅限于 ASP .NET 2.0
是的,这是一个困难的。使用 MS Ajax 会对您有所帮助。您需要从服务器推送代码以在页面加载时调用此函数,并将返回值分配给服务器可以在回发时访问的隐藏字段。
我必须说这个解决方案很糟糕,但我不知道另一种方法。希望有人会有更好的解决方案。
简单地写下你必须调用 javascript 的地方
Response.Write(" alert('hello');")
我不明白您希望服务器端代码如何调用客户端函数???
AJAX 调用是从客户端到服务器端的!
我之前通过使用标记为隐藏的文本控件并在更改时自动回发来完成此操作。然后,该函数设置触发回发的控件的文本。
要从服务器端调用该函数,只需注册一些启动脚本,它就会在页面呈现时运行。
如果您打算在服务器端和客户端重用某些函数,我建议在服务器端(aspx 或 asmx)编写该函数,并使用 AJAX 从客户端(JavaScript)调用它。不确定您是否正在寻找这个。
每当您在服务器端和客户端之间转换时,就性能而言,就像用户单击了浏览器上的刷新按钮一样。
这真的是您想要做的吗,因为您提出的方案将意味着至少两次回传。
这样做的目的是什么?如果您可以将其保留在客户端会更好。
我会查看 JSON.Net(结合一个库 [jQuery 也是免费的]),它们是开源解决方案,可以让这些问题变得更容易。
在第一个答案中,马特提到这是不可能的(在服务器上执行客户端代码)。这是真的。
您对 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...
}
如果这是你想要做的,那是不可能的。在服务器上时,您无法与客户端通信。
这是你的意思吗?
谢谢,-蒂莫西