让我们在我的页面上说我有这个功能:
function ReturnFoo(bar)
{
return bar.toString() + "foo";
}
现在,我想从ASP .NET调用它,希望使用ASP .NET AJAX框架,因为我已经在这个代码库中使用它(我已经花了100k,不妨使用它)。
此外,我想取回从此函数返回的输出,然后将其分配给在服务器端创建的变量。这仅限于ASP .NET 2.0
答案 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也是免费的])它们是开源解决方案,使这些问题变得更加容易。