asp.net后台调用前台js代码

为了通过ajax异步获取数据,我通过使用jquery的$(function{})方法,在页面加载时发送ajax请求,获取相关的数据。但是遇到了一个问题,当我发送的ajax请求需要根据传过来的URL参数来获取数据时,这就存在一个问题,怎样将后台获取的参数传递给前台js的问题。由于页面是先加载jquery的ajax请求页面,再执行后台代码的Page_Load方法,所以必须在获取参数之后再调用ajax方法。可以通过在后台代码中注册前台js代码,控制它的执行顺序。

后台C#代码如下:

 1 <SPAN style= "FONT-SIZE: 14px" > private string categoryId = "0" ;
 2 protected void Page_Load( object sender, EventArgs e)
 3 {
 4      if (!String.IsNullOrEmpty(Request.QueryString[ "categoryId" ]))
 5      {
 6          categoryId = Request.QueryString[ "categoryId" ];  
 7      }
 8      Page.ClientScript.RegisterStartupScript( this .GetType(), "" , "load(" +categoryId+ ")" ,   true );
 9 }
10   
11 </SPAN>

 

前台js代码如下:

 1 <SPAN style= "FONT-SIZE: 14px" >function load(categoryId) {
 2      $.ajax({
 3          type: "get" ,
 4          url: '<%=ResolveUrl("~/Handler/Test.ashx") %>' ,
 5          dataType: "json" ,
 6          data: "categoryId=" +categoryId,
 7          success: function (result) {
 8              $.each(result, function (index, data) {
 9 });
10          }
11      });
12 };
13 </SPAN>
原文地址:https://www.cnblogs.com/gates/p/3457680.html