.NET 前台后台方法相互调用 HTML Code
.NET 前台后台方法相互调用 HTML Code
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>前台后台方法相互调用</title>
<%--
JavaScript异步调用定义在ASP.NET页面中的方法,需要:
1.该方法声明为公有( public );
2.该方法声明为静态(类方法 static)
3.该方法添加[WebMethod]属性;
4.添加using System.Web.Services;
5.页面中ScriptManager控件的EnablePageMethods属性认为true;
6.在客户端使用如下JavaScript语法调用页面方法:
PageMethods.[MethodName](param1,param2,...,CallBackFunction);
7.为客户端调用指定回调函数,在回调函数中接受返回值并进一步处理
--%>
<%--
ASP.NET后台调用JavaScript function方法,要注意:
1.尽量少用Response.Write(<script></script>);这种方法会影响CSS导致页面效果偏差
2.C#中使用ScriptManager.RegisterStartupScript(this,this.GetType(),"","JScode",true);
3.添加 using System.Web.UI;
--%>
</head>
<body>
<script type="text/javascript">
/*-----------JavaCript 调用.NET后台 start-------------*/
function JsCallCSharp(param) {
PageMethods.SayHelloFromPage(param, OnSayHelloSucceeded);
}
/*------------回调函数--------------*/
function OnSayHelloSucceeded(result) {
alert(result);
}
/*-----------JavaCript 调用.NET后台 end---------------*/
/*---------.NET调用JavaScript start--------*/
function CSharpCallJs(param1, param2) {
alert(param1 + param2);
}
/*----------.NET调用JavaScript end-------*/
</script>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true"></asp:ScriptManager>
<div>
<asp:Button ID="btnTemp" runat="server" OnClientClick="JsCallCSharp('Jay Wang');" OnClick="OnClick" Text="Click Me!"/>
</div>
</form>
</body>
</html>
C# Code
using System;
using System.Web.UI;
using System.Web.Services;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
[System.Web.Services.WebMethod]
public static string SayHelloFromPage(string name)
{
return string.Format("Hello {0}!", name);
}
protected void OnClick(object sender, EventArgs e)
{
string param1 = "你好!";
string param2 = "Jay Wang";
ScriptManager.RegisterStartupScript(this, this.GetType(), "edit", "CSharpCallJs('" + param1 + "','" + param2 + "');",true);
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗