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;
}
————————————————
版权声明:本文为CSDN博主「星旅zl」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/nzzl54/article/details/89925067

posted @ 2022-06-06 09:05  八风不动  阅读(835)  评论(0编辑  收藏  举报