天天看点

C#aspx页面和aspx.cs页面之间的数据交互(记录篇)

一、读取aspx页面请求中的参数 (本段转载自https://blog.csdn.net/u011966339/article/details/53993013)

当在浏览器地址栏中输入一个网址,例如输入网址http://www.huiyaosoft.com/news.aspx?id=1,这个请求将由服务器上名为demo.aspx的asp.net页面处理。打开demo.aspx.cs文件,在Page_Load()方法中加入以下代码,其中行1的目的是先判断参数中是否存在id,如果存在再读取它的值。

1.    if(Request.QueryString["id"]!=null)

2.        string id = Request.QueryString["id"]

通过demo.aspx?id=1这种方式传递参数的方式称之为Get方式,与之对应的是Post方式,即通过form表达提交,如下所示:

1.    <form name="frmPagesEdit" id="frmPagesEdit" 

2.        action="../ajaxedemo.ashx" method="post">

此时,不能通过Request.QueryString[]获得值,而需通过Request.Form[]获得值。

如果不清楚页面传递了哪些参数,可通过foreach遍历方式读取所有参数,然后再分析。

下面的代码演示了读取所有QueryString中的参数:

1.    foreach (string s in Request.Form)

2.    {

3.        Response.Write(string.Format("form,name:{0},value:{1}", s, Request.Form[s]));

4.    }

下面的代码演示了读取所有Form中的参数:

1.    foreach (string s in Request.QueryString)

2.    {

3.        Response.Write(string.Format("QueryString,name:{0},value:{1}", s, Request.QueryString[s]));

4.    }

二、aspx页面获取aspx.cs中的参数

1、.aspx.cs页面(这里模拟从上一个页面传入参数,然后根据条件去后台查询到数据后返回aspx页面)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using System.Data.SqlClient;

public partial class AQGL_jcb_jcxmList : System.Web.UI.Page
{
    private SqlConnection conn = new SqlConnection(SQLConfig.SqlconString);
    public string jsonObj = "";
    public string jId = "0";
    public string jType = "0";
    protected void Page_Load(object sender, EventArgs e)
    {
        if(Request.QueryString["jId"]!=null)
	       jId = Request.QueryString["jId"];
        if (Request.QueryString["jType"] != null)
            jType = Request.QueryString["jType"];

        conn.Open();
        //获取
        DataTable dt = new DataTable();
        SqlDataAdapter sda = new SqlDataAdapter("SELECT * FROM TABLE_J WHERE state = 0 AND jId=" + jId + " AND jType = " + jType + " ORDER BY id DESC", conn);
        sda.Fill(dt);
        jsonObj = JsonConvert.SerializeObject(dt, new DataTableConverter());  //结果直接转json
        sda.Dispose();

        if (conn.State == ConnectionState.Open) { conn.Close(); }
    }
}
           

其中SQLConfig是配置链接数据库的文件,放在App_Code文件夹下,每个人配置不一样,无需参考下面的方式,这里只做个人记录

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

/// <summary>
///SQLConfig 的摘要说明
/// </summary>
public class SQLConfig
{
    private static string SqlDatabaseName = "XXX";      //SQL数据库名     
    private static string SqlUsername = "XX";              //SQL数据库用户名        
    private static string SqlPassword = "XX";        //SQL数据库用户密码     
    private static string SqlLocalName = "(local)\\SQLSERVEREXPRESS";    //SQL主机IP地址(本地可用“127.0.0.1”或“(local)”,非本机请用真实IP) 
    public static string SqlconString = "Server=" + SqlLocalName + ";" +
                                         "DataBase=" + SqlDatabaseName + ";" +
                                         "uid=" + SqlUsername + ";" +
                                         "Pwd=" + SqlPassword + ";" +
                                         "Pooling=true;Max Pool Size=40000;Min Pool Size=0";
}
           

2、.aspx页面

<script type="text/javascript">

    var objList=<%= jsonObj%>;//这个就是数据库返回的数据集合

    var jId =<%= jId%>;

    var jType =<%= jType%>;

</script>

三、C#前台js里面使用ajax调用后台aspx.cs方法(原文链接:https://blog.csdn.net/zl_shitou/article/details/79279505)

1、前台js             

引入jq文件 <script type="text/javascript" src="js/jquery-3.2.1.min.js"></script>

 <script type="text/javascript">     

       window.onload = function(){  

                $.ajax({

                type: "Post",//要用post方式   

                url: "comment.aspx/show",//方法所在页面和方法名   

                contentType: "application/json; charset=utf-8",

                dataType: "json",

                data: "{'aaa':'" + inputText + "'}",//aaa是方法show()的入参

                success: function (data) {

                    alert(data.d);//返回的数据用data.d获取内容   

                },

                error: function (err) {

                    alert(err);

                }

            });

            }  

 </script>

2、后台comment.aspx.cs

  [WebMethod] //一定要加该标识,才能从客户端调用该方法。引用命名空间 using System.Web.Services;

  public static string show(string aaa)   //必须是公共的静态方法 static

        {

            return aaa;

        }

继续阅读