从ASP.netJavaScript方法执行www.example.com方法

bfnvny8b  于 2023-04-10  发布在  Java
关注(0)|答案(4)|浏览(105)

我有一个JavaScript方法,看起来像这样
JSMethod(JS_para_1,JS_para_2){ ......,,,,,}
我有一个这样的ASP.NET方法
ASP_Net_Method(ASP_Para_1,ASP_Para_2){ ....,,,}
现在我想通过传递一些参数从我的JSMethod调用这个ASP_Net_Method。

j8ag8udp

j8ag8udp1#

先说清楚

  • 您的JavaScript由用户的浏览器在用户的笔记本电脑上执行
  • 在服务器上执行ASP.NET方法

所以,你可能想做的是从浏览器向服务器发送一条消息,说“嘿,运行这个方法,把结果给予我”。
如果你在做传统的ASP.NET开发(而不是ASP.NET MVC),我认为正常的方法是创建一个ASPX页面,当被请求时,它会执行你想要执行的方法。然后,在你的javascript中,你只需要请求这个页面。要做到这一点,你可以使用jQuery(jQuery ajaxjQuery getjQuery post)。
您需要download the jQuery library并将其包含在您的页面中才能使其正常工作。
给予一下,如果你不能让它工作,回来寻求更具体的建议。

**编辑:**也可以去ASP.NET AJAX看看,首页有很多教程和视频。

9rnv2umw

9rnv2umw2#

你真正想做的是从javascript执行服务器端代码(有时称为“代码隐藏”,这是我在谷歌上搜索这个时使用的术语)。
这篇文章展示了几个选项。更好的选项在底部。
http://forums.asp.net/t/1059213.aspx

byqmnocz

byqmnocz3#

如果您不想执行完整的回发,只需要调用1个方法, AJAX 的PageMethods对此非常有用。
首先,我在aspx.cs文件中修饰一个方法,如下所示:

[System.Web.Services.WebMethod]
        public static string getVersions(string filePath)
        { ...
           return myString;
        }

注意“static”。然后在javascript中我可以这样调用:

PageMethods.getVersions(_hfFilePath.value, LoadVersionsCallback);

您可以根据需要使用不同数据类型的任意多个参数。最后一个参数是JavaScript函数,当调用返回时会调用该函数。看起来像这样:

function LoadVersionsCallback(result) {
    ...
     // I make a drop down list box out of the results:
     parts = result.split('|');
    for (var i = 0; i < parts.length; i++) {
          _ddl.options[_ddl.options.length] = 
                 new Option(parts[i].replace(/~/g, ",  "), parts[i]);
                }
 ...
}

最后,您必须将脚本管理器属性“EnablePageMethods”设置为“true”。

<ajaxToolkit:ToolkitScriptManager ID="ScriptManager1" 
        runat="server" EnablePageMethods="true"
                EnablePartialRendering="true"
     OnAsyncPostBackError="ScriptManager1_AsyncPostBackError">
            </ajaxToolkit:ToolkitScriptManager>

因此,从JavaScript中,您可以在页面的后台代码中调用静态函数。

cgvd09ve

cgvd09ve4#

基本上,每个触发服务器端事件的函数都使用一个名为__doPostBack的javascript方法和here is an example来执行您想要执行的操作。

相关问题