[英]Call C# method in javascript function directly
如何在 javascript function 中直接调用 c# 方法。 (例如页面后面代码的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:
<a .... onclick="TriggerPostBack('control', 'arg')" .. />
您有多种选择,每种选择都有其优点和缺点。
window.location.reload()
就会调用页面的加载事件。jQuery
或Ajax.Net Professional或 ASP.NET Ajax 的更新面板。如果您想从 JavaScript 调用 C# 中的方法,我将使用 web 方法。 下面提供了一个示例。 我希望这会有所帮助。
ASP.NET - 以下 HTML 标记由 ASP.Net 文本框和 HTML 按钮组成。
<asp:TextBox ID="txtUserName" runat="server"></asp:TextBox>
<input id="btnGetTime" type="button" value="Show Current Time"
onclick = "ShowCurrentTime()" />
JavaScript Code: - When the Button is clicked the ShowCurrentTime JavaScript function is executed which makes an AJAX call to the GetCurrentTime WebMethod. TextBox 的值作为参数传递给 WebMethod。
<script type = "text/javascript">
function ShowCurrentTime() {
$.ajax({
type: "POST",
url: "CS.aspx/GetCurrentTime", //Type name of your class here e.g student.aspx/Method
data: '{name: "' + $("#<%=txtUserName.ClientID%>")[0].value + '" }',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: OnSuccess,
failure: function(response) {
alert(response.d);
}
});
}
function OnSuccess(response) {
alert(response.d);
}
</script>
WebMethod - 以下 WebMethod 向用户返回问候消息以及当前服务器时间。 需要注意的重要一点是,该方法被声明为 static (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();
}
javascript 是客户端,page_load 是服务器端。 我认为您可以这样调用该方法。 可能您可以仅为该方法创建一个单独的页面并通过 ajax 拨打电话
简单的答案:你不能(至少是 page_load)。 清楚地了解什么是服务器端代码和客户端代码。
调用服务器端方法的其他选项是使用 AJAX。 读。
您可以创建一个ASHX 处理程序,在其中执行您要运行的 C# 方法,然后使用AJAX/jQuery调用该处理程序。
我不特别了解 c#,但是客户端与服务器端通信的一个好方法是通过RPC(远程过程调用)实现。
假设您使用JSON-RPC 。
首先,创建代表请求的 json object:
var request = {
"method": "echo",
"params": ["Hello JSON-RPC"],
"id": 1
}
其中方法代表您正在调用的 function 名称,
params表示指定的 function 应该采用的一系列参数,
id是请求对象的唯一标识符。
然后你想将此请求发送到服务器。 这应该使用 ajax 来完成。 假设您有一个 function 来处理名为sendAjaxRequest
的 ajax 请求,该请求采用 3 个参数:
处理响应的回调
sendAjaxRequest(scriptUrl,request,function(response){ alert("the server responded with: "+response.result); });
服务器接收请求,解释它并使用所需参数执行方法并构造响应 json object:
{
"result": "Hello JSON-RPC",
"error": null,
"id": 1
}
并将其发送回客户端。
这是一个非常好的做法,无论情况如何。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.