1

私のページにこの機能があるとしましょう:

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

ここで、このコードベースで既に使用しているので、ASP .NET からこれを呼び出したいと思います。できれば ASP .NET AJAX フレームワークを使用します (既に 100k を費やしているため、使用することもできます)。

また、この関数から返された出力を取得して、サーバー側で作成した変数に代入したいと考えています。これは ASP .NET 2.0 に限定されます。

4

8 に答える 8

1

ええ、これは難しいものです。MS Ajax を使用すると、少しは役に立ちます。ページの読み込み時にこの関数を呼び出し、ポストバック時にサーバーがアクセスできる非表示フィールドに戻り値を割り当てるには、サーバーからコードをプッシュする必要があります。

この解決策は最悪だと言わざるを得ませんが、別の方法はわかりません。うまくいけば、誰かがより良い解決策を見つけるでしょう。

于 2008-10-07T18:46:01.267 に答える
1

JavaScriptを呼び出す必要がある場所を簡単に記述します

Response.Write( " alert('hello');")

于 2009-01-08T05:45:41.660 に答える
0

サーバー側のコードがクライアント側の関数を呼び出すことをどのように期待しているのかわかりません???

AJAX呼び出しは、クライアント側からサーバー側へです。

于 2008-10-07T18:36:22.847 に答える
0

私は以前、変更時に自動ポストバックで非表示としてマークされたテキストコントロールを使用してこれを行いました。次に、この関数は、ポストバックをトリガーするそのコントロールのテキストを設定します。

サーバー側から関数を呼び出すには、スタートアップスクリプトを登録するだけで、ページがレンダリングされたときに実行されます。

于 2008-10-07T18:38:01.690 に答える
0

サーバー側とクライアント側の両方で一部の関数を再利用する場合は、その関数をサーバー側(aspxまたはasmx)で記述し、AJAXを使用してクライアント側(JavaScript)から呼び出すことをお勧めします。あなたがこれを探しているかどうかわからない。

于 2008-10-07T18:41:59.043 に答える
0

サーバー側とクライアント側の間で移行するときはいつでも、ユーザーがブラウザーの更新ボタンをクリックしたときと同じように、パフォーマンスが向上します。

提案されたシナリオは少なくとも 2 つのポストバックを意味するため、本当にやりたいことですか。

これの目的は何ですか?これをクライアントに保管していただけるとより良いでしょう。

于 2008-10-07T18:42:34.223 に答える
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...
}

これがあなたがやりたいことなら、それは不可能です。サーバー上では、クライアントと通信できません。

そうですか?

ありがとう - ティモシー

于 2008-10-24T10:26:48.133 に答える
0

JSON.Net(ライブラリと組み合わせて[jQueryも無料])をチェックしてみます。これらは、これらの問題をはるかに簡単にするオープンソースソリューションです。

于 2009-01-08T05:52:57.357 に答える