簡體   English   中英

從ASP.NET中的Javascript調用帶有參數的服務器端函數

[英]Calling server side function with parameter from Javascript in ASP.NET

我在VB.NET中有一個ASP.NET應用程序。 我在mypage.aspx有一個Javascript函數,在我的callback.aspx頁面中有另一個。 我需要這些腳本來在mypage.aspx上呈現和提交IFrame

當我點擊提交按鈕時:

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

執行此腳本,其中iframeIdIFrame的ID:

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 (不帶參數)而不是一個函數,則在接收到IFrame和其他時間(連接為https無法有效調試Javascript )時,在page_load上執行該sub 3次。

我在跨站點腳本和代碼塊方面不擅長,可能確實很瑣碎,但我不知道如何解決此問題。 有人嗎

我認為您正在尋找MS-Ajax功能的頁面方法。 將[WebMethod]放在您要調用的方法上(服務器端),並使用諸如PageMethods.GetData(f,s,OnRequestComplete,OnRequestError)之類的客戶端對其進行調用。

整個模式需要一篇文章來描述。 http://www.dotnetfunda.com/articles/article454-using-pagemethods-and-json-in-aspnet-ajax.aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM