繁体   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