直接在javascript函数中调用C#方法

如何直接在javascript函数中调用ac#方法。 (例如页面后面的代码的page_load方法)。 请帮我。

要在客户端事件上调用服务器端方法,您需要执行以下操作:

1-创建服务器端方法:

 void DoSomething(...) { ... } 

2-实现System.Web.UI.IPostBackEventHandler.RaisePostBackEvent ,它接受一个字符串参数(您可以将该名称赋值给该参数的值):

 public void RaisePostBackEvent(string eventArgument) { DoSomething(...); } 

3-编写脚本以触发回发:

 function TriggerPostBack(control, arg){ __doPostBack(control, arg); } 

4-需要时调用PostBack触发器function:

  

你有多种选择,每种选择都有自己的优点和缺点。

  • 如果要调用page_Load事件,只需重新加载页面: window.location.reload() ,将调用页面的load事件。
  • 如果要使用异步方式执行此操作,则必须使用XMLHttpRequest(即使用Ajax库)。 您可以使用jQuery或Ajax.Net Professional或ASP.NET Ajax的更新面板。

javascript将是客户端,page_load将是服务器端。 我认为你可以这样称呼这个方法。 也许你可以为该方法创建一个单独的页面并通过ajax进行调用

简单回答:你不能(至少是page_load)! 清楚地了解什么是服务器端以及什么是客户端代码。

调用服务器端方法的其他选项是使用AJAX! 读。

您可以创建一个ASHX处理程序 ,在该处理程序中执行要运行的C#方法,然后使用AJAX / jQuery来调用处理程序。

我不太了解c#,但是客户端与服务器端通信的好方法是通过RPC(远程过程调用)实现。
让我们说你使用JSON-RPC 。
首先,创建表示请求的json对象:

 var request = { "method": "echo", "params": ["Hello JSON-RPC"], "id": 1 } 

方法表示您正在调用的函数名称,
params表示指定函数应该采用的参数aray,
id是请求对象的唯一标识符。

然后,您要将此请求发送到服务器。 这应该用ajax完成。 假设您有一个处理名为sendAjaxRequest ajax请求的函数,它接受3个参数:

  1. 服务器端目标脚本
  2. 请求对象
  3. 一个回调来处理响应

     sendAjaxRequest(scriptUrl,request,function(response){ alert("the server responded with : "+response.result); }); 

服务器接收请求,解释它并使用所需的参数执行该方法并构造响应json对象:

 { "result": "Hello JSON-RPC", "error": null, "id": 1 } 

并将其发回给客户。

无论情况如何,这都是非常好的做法。

如果你想用JavaScript调用C#中的方法,我会使用web方法。 下面提供一个例子。 我希望这有一些帮助。

ASP.NET – 以下HTML标记由ASP.Net TextBox和HTML Button组成。

   

JavaScript代码: – 单击Button时,将执行ShowCurrentTime JavaScript函数,该函数对GetCurrentTime WebMethod进行AJAX调用。 TextBox的值作为参数传递给WebMethod。

  

WebMethod – 以下WebMethod向用户返回问候消息以及当前服务器时间。 需要注意的一件重要事情是该方法被声明为静态(C#),这是必要的,否则该方法将不会从客户端jQuery AJAX调用中调用。

C#

 [System.Web.Services.WebMethod] public static string GetCurrentTime(string name) { return "Hello " + name + Environment.NewLine + "The Current Time is: " + DateTime.Now.ToString(); }