我的javascript方法看起来像这样
JSMethod(JS_para_1,JS_para_2) { ...... ,,,,, }
我有一个像这样的ASP.NET方法
ASP_Net_Method(ASP_Para_1,ASP_Para_2) { .... ,,, }
现在我想通过在那里传递一些参数来从我的JSMethod调用这个ASP_Net_Method。
答案 0 :(得分:2)
要明确:
所以,您可能想要做的是从浏览器向服务器发送一条消息,说“嘿,运行此方法并将结果返回给我”。
如果您正在进行传统的ASP.NET开发(不是ASP.NET MVC),我认为通常的方法是创建一个ASPX页面,在请求时,它执行您想要执行的方法。然后,在您的JavaScript中,您只需要请求此页面。为此,您可以使用jQuery(jQuery ajax,jQuery get或jQuery post)。
您需要download the jQuery library并将其包含在您的页面中才能实现此目的。
试一试,如果你不能让它工作,请回来寻求更具体的建议。
编辑:您还可以查看ASP.NET AJAX。主页上有很多教程和视频。
答案 1 :(得分:0)
你真正想要做的是执行服务器端代码(有时称为“代码隐藏”,这是我在谷歌搜索时使用的术语。)来自javascript。
这篇文章显示了几个选项。更好的是底部。
答案 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在页面后面的代码上调用静态函数。