从JavaScript方法执行ASP.net方法

时间:2010-03-04 05:04:09

标签: c# asp.net javascript

我的javascript方法看起来像这样

JSMethod(JS_para_1,JS_para_2) { ...... ,,,,, }

我有一个像这样的ASP.NET方法

ASP_Net_Method(ASP_Para_1,ASP_Para_2) { .... ,,, }

现在我想通过在那里传递一些参数来从我的JSMethod调用这个ASP_Net_Method。

4 个答案:

答案 0 :(得分:2)

要明确:

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

所以,您可能想要做的是从浏览器向服务器发送一条消息,说“嘿,运行此方法并将结果返回给我”。

如果您正在进行传统的ASP.NET开发(不是ASP.NET MVC),我认为通常的方法是创建一个ASPX页面,在请求时,它执行您想要执行的方法。然后,在您的JavaScript中,您只需要请求此页面。为此,您可以使用jQuery(jQuery ajaxjQuery getjQuery post)。

您需要download the jQuery library并将其包含在您的页面中才能实现此目的。

试一试,如果你不能让它工作,请回来寻求更具体的建议。

编辑:您还可以查看ASP.NET AJAX。主页上有很多教程和视频。

答案 1 :(得分:0)

你真正想要做的是执行服务器端代码(有时称为“代码隐藏”,这是我在谷歌搜索时使用的术语。)来自javascript。

这篇文章显示了几个选项。更好的是底部。

http://forums.asp.net/t/1059213.aspx

答案 2 :(得分:0)

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

答案 3 :(得分:0)

如果你不想做一个完整的回发并且只需要调用1方法,那么Ajax的PageMethods对此非常有用。

首先,我在我的aspx.cs文件中装饰一个方法,如下所示:

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

注意“静态”。然后在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在页面后面的代码上调用静态函数。