一、读取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;
}