100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > C#aspx页面和aspx.cs页面之间的数据交互(记录篇)

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

时间:2018-10-18 12:20:54

相关推荐

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

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

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

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

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

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

1.<formname="frmPagesEdit"id="frmPagesEdit"

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

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

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

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

1.foreach(stringsinRequest.Form)

2.{

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

4.}

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

1.foreach(stringsinRequest.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()); //结果直接转jsonsda.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方法(原文链接:/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;

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。