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视为服务器端函数并给出编译错误。但是,如果我使用 a sub(不带参数)而不是函数,sub则执行 3 次, on page_load,当IFrame接收到时,再执行一次(连接是 https 无法有效地调试Javascript)。

我不擅长跨站点脚本和代码块,可能真的很琐碎但我不知道如何解决这个问题。有人吗?

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 回答