1

VB.NETにASP.NETアプリケーションがあります。私のページにはJavascript関数があり、別の関数があります。onをレンダリングして送信するには、このスクリプトが必要です。mypage.aspxcallback.aspxIFramemypage.aspx

送信ボタンをクリックすると:

<asp:Button ID="subbtn" Name="Submit" OnClientClick="onsubmit_action();" runat="server" />

このスクリプトが実行されます。iframeIdは次の id ですIFrame

function onsubmit_action() {

            submitPage('iframeId');           
        }

(検証または成功)の応答がファイルIFrameに送信されcallback.aspxます。これは、ファイル内のコールバック関数を呼び出すクロスサイト スクリプティングによって発生すると思います。callback.aspx

function callback()
{
     parent.pagecallback_success('<%=Request.QueryString("Id")%>');
}

で関数を呼び出すmypage.aspx

function pagecallback_success(ref_id) {
        var Url = "mypage.aspx?";
        Url += "id=" + id;
        window.location.href = Url;
    }

スクリプトは期待どおりに機能します。ここで、サーバー関数を呼び出したいと思います

Protected Function Store(ByVal id As String) As Boolean

変数をmypage.aspx.vb渡しますid

function hostedpagecallback_success(id) {
            var Url = "mypage.aspx?";
            Url += "id=" + id;
            window.location.href = Url;
            "<%= Store(id) %>"
        }

問題は、コンパイラidがサーバー側の関数と見なし、コンパイル エラーが発生することです。ただしsub、関数の代わりに (パラメーターなしで)を使用すると、 が受信されたときと別のときに がsub3 回実行されます (接続は https であり、 Javascriptを効率的にデバッグできません)。page_loadIFrame

私はクロスサイト スクリプティングとコード ナゲットが苦手です。おそらく本当に些細なことですが、この問題を解決する方法がわかりません。誰か?

4

1 に答える 1

0

MS-Ajax の機能であるページ メソッドを探していると思います。[WebMethod] を呼び出したいメソッド (サーバー側) に置き、PageMethods.GetData(f, s, OnRequestComplete, OnRequestError); のようなものでクライアント側を呼び出します。

パターン全体を説明するには記事が必要です。 http://www.dotnetfunda.com/articles/article454-using-pagemethods-and-json-in-aspnet-ajax.aspx

于 2012-11-14T17:18:22.420 に答える