asp.net备忘录之JS调用后台方法

asp.net备忘录之JS调用后台方法



前言

本文记录asp.net 前台页调用后台方法的几种方式


一、通过js调用控件点击事件调用

通过点击input控件调用js方法,间接调用asp.net 服务器控件按钮

代码(示例)

 <script type="text/javascript">       
        function ClickButton() {
            document.getElementById("Button1").click();
        }
 </script>
 <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
 <input type="button" name="btnClick3" value="通過JS click asp.netButton" onclick="ClickButton();" />
 </script>

二、使用"<%#Eval(“某字段”)%>" 调用

前台代码(示例)

<script type="text/javascript">
 		//直接调用后台属性
        function GetProperty() {
            var str = "<%=Property%>";
             alert(str);
         }
         //调用后台方法
        function GetFunction() {
            var str = "<%=GetString()%>";
            alert(str); 
        }
    </script>
 <input type="button" name="btnClick" value="js调用后台屬性" onclick="GetProperty();" /> 
 <input type="button" name="btnClick2" value="js调用后台代码" onclick="GetFunction();" />

后台代码(示例)

 public partial class WebForm1 : System.Web.UI.Page
    {
        public string Property {
            get { return "test Property"; }
        }
        protected void Page_Load(object sender, EventArgs e)
        {

        }
        public string GetString()
        {
            return "通過GetString顯示"+ Property;
        }
    }

三、Ajax.dll 调用

1.添加引用Ajax.dll

2.webconfig文件添加

 <system.webServer> 
    <handlers>
	  <add name="ajax" path="ajax/*.ashx" verb="POST,GET" type="Ajax.PageHandlerFactory, Ajax"/>
    </handlers>	  
  </system.webServer>

3.注册后台方法

 protected void Page_Load(object sender, EventArgs e) {
	Ajax.Utility.RegisterTypeForAjax(typeof(ClassName));
}

要引用的方法 上需加[Ajax.AjaxMethod]

[Ajax.AjaxMethod]
    public string MyFunc()
    { 
    	return "res";
    }

4.js直接调用

 <script type="text/jscript">
  function isUserExist(row_defineNo, ModeObject) {
  	var result = ClassName.MyFunc(); 
  }
 </script>

四、Js 通過asp.net ajax 调用后台webService

一、添加webservice頁面,注意要取消掉注釋System.Web.Script.Services.ScriptService

 [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // 若要允許使用 ASP.NET AJAX 從指令碼呼叫此 Web 服務,請取消註解下列一行。
    [System.Web.Script.Services.ScriptService]
    public class WebService1 : System.Web.Services.WebService
    {

        [WebMethod]
        public string HelloWorld()
        {
            return "Hello World";
        }
    }

二.ScriptManager前台页注册ScriptManager

<script type="text/javascript">         
     function UseWebService() {
          TommySummary.JsCallFunction.WebService1.HelloWorld(function (result) {
              var a = result;
              alert(a);
          });
      }
 </script>
  <input type="button" name="btnClick5" value="asp.net Ajax 調用 webservice測試" onclick="UseWebService();" /> 
  <asp:ScriptManager ID="ScriptManager1" runat="server">
    <Services>
           <asp:ServiceReference  Path="~/JsCallFunction/WebService1.asmx"/>
       </Services>
   </asp:ScriptManager>

总结

本文仅针对asp.net 前台js方法获取服务器后台方法的机种方式加以记录,实际能获取的还有更多方法未记录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值