Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从JavaScript方法执行ASP.net方法_C#_Asp.net_Javascript - Fatal编程技术网

C# 从JavaScript方法执行ASP.net方法

C# 从JavaScript方法执行ASP.net方法,c#,asp.net,javascript,C#,Asp.net,Javascript,我有一个javascript方法,如下所示 JS方法(JS_第1段、JS_第2段) { ...... ,,,,, } 我有一个像这样的ASP.NET方法 ASP_网法(ASP_段1、ASP_段2) { .... ,,, } 现在我想从我的JSMethod调用这个ASP_Net_方法,方法是在那里传递一些参数。您真正想做的是从javascript执行服务器端代码(有时称为“代码隐藏”,这是我在谷歌搜索时使用的术语) 这篇文章展示了几个选项。好的是往底部走 基本上,触发服务器端事件的每个函数都使用一

我有一个javascript方法,如下所示

JS方法(JS_第1段、JS_第2段) { ...... ,,,,, }

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

ASP_网法(ASP_段1、ASP_段2) { .... ,,, }


现在我想从我的JSMethod调用这个ASP_Net_方法,方法是在那里传递一些参数。

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

这篇文章展示了几个选项。好的是往底部走


基本上,触发服务器端事件的每个函数都使用一个名为uu doPostBack的javascript方法以及您想要执行的操作。

需要明确的是:

  • javascript由用户笔记本电脑上的用户浏览器执行
  • ASP.NET方法在服务器上执行
因此,您可能想做的是从浏览器向服务器发送一条消息,说“嘿,运行这个方法并将结果返回给我”

如果您正在进行传统的ASP.NET开发(而不是ASP.NETMVC),我认为通常的方法是创建一个ASPX页面,当请求时,该页面将执行您想要执行的方法。然后,在javascript中,您只需要请求此页面。要做到这一点,可以使用jQuery(或者,或者)

您需要将它添加并包含在页面中,才能使其正常工作

试一试,如果你不能让它发挥作用,回来寻求更具体的建议


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

Ajax的PageMethods非常有用,如果您不想进行完整的回发,只需要调用1个方法

首先,我在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]);
                }
 ...
}
函数LoadVersionCallback(结果){
...
//我从结果中创建一个下拉列表框:
parts=结果分割(“|”);
对于(变量i=0;i
最后,必须将脚本管理器属性“EnablePageMethods”设置为“true”


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

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