最近刚刚接手B/S的项目,涉及到了服务器从数据库中查询数据,然后根据数据拼出前台的HTML语句。下面是自己的一段路程。
从最开始自己的一个技术难点,后台拼接完了HTML语句,怎么送到前台呢?下面是关于ASPX页面的数据交互。注意:如果代码看不清,请选中看观看。
最简单的一种方法: <%=方法名()%>,这个方法名是在后台写的方法。看图
前台aspx页面。
后台的代码
第二种:使用jQuery封装好的ajax
前台js代码:注意一定要引用jQuery库。
<span style="font-size:18px;"> $.ajax({
url: "MobileFeedBack.aspx/SubmitSuggestion", //url 前面是aspx的页文件,后面是调用的方法名
type: "post",
data: params,
contentType: "application/json;charset=utf-8",
success: function (data) {
if (data == '{"d":true}') {
mui.alert("提交失败,请稍等!", "提示");
}
else {
mui.alert('提交成功,感谢您的支持!', '提示', function () {
var url = "../mobile/mobileHomePage.aspx";
window.location.href = url;
});
}
}
});</span>
后台代码uing的引用
<span style="font-size:18px;">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 System.Data.SqlClient;
using BLL;
using Entity;
using System.Web.Services;
using System.Web.Script.Serialization;</span>
<span style="font-size:18px;">[WebMethod] //使客户端可以调用此方法,基于引用System.Web.Services
public static bool SubmitSuggestion(string suggestion, string userName)
{ //语句体 }</span>
js的post——>一般处理程序——>后台类的方法——>一般处理程序——>js的post
在此要注意:FeedBack.ashx是一般处理程序的文件名,要注意路径。
$.post("FeedBack.ashx", { Message: sendMessage, Grade: grade }, function (data) {
mui.alert('提交成功,感谢您的支持','提示',function(){
window.top.location.href = '../LoginMobile.aspx';
});
}, 'json');
后台代码
//using引用 using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI.WebControls;
using System.Text;
//用来获取客户端http请求的信息 ,该方法由系统自动生成,语句体自己写 public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/html;charset=utf-8";
string sendmessage = context.Request.Params["Message"].ToString();
string grade = context.Request.Params["Grade"].ToString();
string json = reString(sendmessage, grade); //在此调用了其他的方法。
context.Response.Write(json);//返回处理结果
context.Response.ContentEncoding = System.Text.Encoding.UTF8;
context.Response.End();
}
public string reString(string message,string grade)
{
weChatBackInfo feedback = new weChatBackInfo(); //先声明一个类
StringBuilder sb = new StringBuilder();
if (feedback.Submit(message, grade)) //括号里调用了该类的方法
{
sb.Append("我们已接收到您的反馈意见,感谢您的支持");
}
else
{
sb.Append("感谢您的支持,网络繁忙,请稍后");
}
//json串的格式: {键名:值,键名:值。。。。。。}
string jsonString = "{\"returnMessage\":\"" + sb.ToString() + "\"}";
return jsonString;
}