前后台相互调用

来源:互联网 发布:网络买车 编辑:程序博客网 时间:2024/04/29 07:00
 
HTML code
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="JavaScript get Net Function.aspx.cs" Inherits="JavaScript_get_Net_Function" %><!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.將該方法聲明為類方法(C#中的static,VB.NET中的Shared),而不是實例方法; 3.將該方法添加【WebMethod】屬性 4.將頁面中ScriptManager控件的EnablePageMethods屬性設置為true; 5.在客戶端使用如下JavaScript語法調用該頁面方法 PageMethods.[MethodName](param1,param2,...,callbackFunction); 6.為客戶端異步調用指定回調函數,在回調函數中接受返回值并進一步處理; 7.添加 using System.Web.Services; --%> <%-- ASP.Net后臺調用JavaScript function的方法,我們要注意: 1.盡量少用Response.Write(<script></script>);這種方法,它會影響CSS導致頁面效果偏差 2.C#中使用ScriptManager.RegisterStartupScript(this, this.GetType(), "edit", "JS('"+param1+"','"+param2+"')", true); 3.添加 using System.Web.UI; --%> <script type="text/javascript"> /*-------------JavaScript調用.Net后臺Start----------------------------------*/ function JsCallCSharp(param1) { PageMethods.SayHelloFromPage(param1,onSayHelloSucceeded); } function onSayHelloSucceeded(result) { alert(result); }/*-------------JavaScript調用.Net后臺End----------------------------------*/ /*-------------.Net調用JavaScript Start-----------------------------------*/ function CSharpCallJs(param1,param2) { alert(param1 + param2); }/*-------------.Net調用JavaScript Start-----------------------------------*/ </script> </head><body> <form id="form1" runat="server"> <div> <asp:ScriptManager ID="ScriptManager1" EnablePageMethods="true" runat="server" /> </div> <asp:Button ID="Button1" onclick="Button1_Click" OnClientClick="JsCallCSharp('takako');" runat="server" Text="Button1" /> </form></body></html>

C# code

using System;using System.Web.Services;using System.Web.UI;public partial class JavaScript_get_Net_Function : System.Web.UI.Page{ protected void Page_Load(object sender, EventArgs e) { } protected void Button1_Click(object sender, EventArgs e) { string param1 = "你好:"; string param2 = "takako_mu"; ScriptManager.RegisterStartupScript(this, this.GetType(), "edit", "CSharpCallJs('" + param1 + "','" + param2 + "');", true); } [WebMethod] public static string SayHelloFromPage(string name) { return string.Format("Hello {0}!", name);

原创粉丝点击