
正文
.net如何前端接收json,net 前端
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
如何拿到前端传过来的json对象
将数据以json格式传给前端:
function generateDtb() {
//写入
var txtName = document.getElementById("txtName").value;
//创建数组
var dtb = new Array();
//通过循环把数据写入到数组并返回
for (var i = 0; i firstGroup.length; i++) {
var row = new Object();
row.Name = txtName;
row.fullMoney = firstGroup[i].value;
row.discount = secondGroup[i].value;
dtb.push(row);
}
return dtb;
}
把数组转换成json串传入到后台:
$(function () {
//点击botton1
$("#lbtnOK").click(function () {
var url = "DiscountManger.aspx?ajax=1";
var dtb = generateDtb();
// var strName = document.getElementById("txtName").value;
if (dtb == null)
{ }
else {
//序列化对象
var postdata = JSON.stringify(dtb);
//异步请求
$.post(url, { json: postdata }, function (json) {
if (json) {
jBox.tip("添加成功!", "提示");
location.reload();
}
else {
jBox.tip("添加失败!", "提示");
location.reload();
}
}, "json")
}
});
});
在后台的操作:
首先判断是否需要传输数据
if (!IsPostBack)
{
//判断是否异步请求
if (Request.QueryString["ajax"] == "1")
{
ProcessRequest();
}
在这里进行对数据的处理:
///
/// 处理异步请求
///
private void ProcessRequest()
{
//存入要填写的策略
ArrayList arrDiscount = new ArrayList();
Response.ContentType = "text/html";
string json = Request.Form["json"];
//反序列化DataTable
if (json == null)
{
return;
}
else
{
DataTable newdtb = Json2Dtb(json);
for (int i = 0; i newdtb.Rows.Count; i++)
{
Entity.StrategyDiscount enStrategyDiscount = new Entity.StrategyDiscount();
//打折方案名
enStrategyDiscount.name = newdtb.Rows[i]["Name"].ToString();
//商店ID
enStrategyDiscount.shopId = long.Parse(LoginInfo.ShopID);
enStrategyDiscount.fullMoney = Convert.ToDecimal(newdtb.Rows[i]["fullMoney"].ToString());
enStrategyDiscount.discount = Convert.ToDecimal(newdtb.Rows[i]["discount"].ToString());
//写入数据到数组
arrDiscount.Add(enStrategyDiscount);
}
//写入数据到数据库
IStrategyBLL strategy = new StrategyBLL();
if (strategy.AddStrategyDiscount(arrDiscount))
{
Response.Write("true");
Response.End();
}
else
{
Response.Write("false");
Response.End();
}
}
这里,我们需要把json转换成datatable
///
/// Json转DataTable
///
///
///
private DataTable Json2Dtb(string json)
{
JavaScriptSerializer jss = new JavaScriptSerializer();
ArrayList dic = jss.Deserialize(json);
DataTable dtb = new DataTable();
if (dic.Count 0)
{
foreach (Dictionary drow in dic)
{
if (dtb.Columns.Count == 0)
{
foreach (string key in drow.Keys)
{
dtb.Columns.Add(key, drow[key].GetType());
}
}
DataRow row = dtb.NewRow();
foreach (string key in drow.Keys)
{
row[key] = drow[key];
}
dtb.Rows.Add(row);
}
}
return dtb;
}
这样,就可以把数据无刷新的写入到数据库。
当然,如果我们有一个从数据库读取的datatable,如果通过json显示在前台呢。
首先,我们需要把datatable转换为json数据
///
/// DataTable转Json
///
///
///
private string Dtb2Json(DataTable dtb)
{
JavaScriptSerializer jss = new JavaScriptSerializer();
ArrayList dic = new ArrayList();
foreach (DataRow row in dtb.Rows)
{
Dictionary drow = new Dictionary();
foreach (DataColumn col in dtb.Columns)
{
drow.Add(col.ColumnName, row[col.ColumnName]);
}
dic.Add(drow);
}
return jss.Serialize(dic);
}
然后写回到前台
///
/// 处理异步请求
///
private void ProcessRequest()
{
Response.ContentType = "text/html";
string json = Request.Form["json"];
//反序列化DataTable
DataTable newdtb = Json2Dtb(json);
//序列化DataTable为JSON
string back = Dtb2Json(newdtb);
Response.Write(back);
Response.End();
}
在前台接受显示:
$(function() {
//点击botton1
$("#botton1").click(function() {
createTable(json);
});
});
//显示Json中的数据
function createTable(json) {
var table = $("");
for (var i = 0; i json.length; i++) {
o1 = json[i];
var row = $("");
for (key in o1) {
var td = $("");
td.text(o1[key].toString());
td.appendTo(row);
}
row.appendTo(table);
}
table.appendTo($("#back"));
}
相关问答
Q1: asp.net怎么接收post方式传过来的json格式
输入String propertyId = request.getParameterValues(propertyId);或String propertyId = request.getParameterValues(propertyId );
这两种方法都可以,只是适用的的方式不同。
post方法:
/// summary ///
使用post方法,调用短信接口
/// /summary
/// param name="PhoneNumber"/param
/// param name="SmsContent"/param
/// param name="PhoneNumberType"/param
/// param name="SmsUser"/param
private void CallMsgCenterToSendMsgPost(string PhoneNumber,
string SmsContent, string PhoneNumberType, string SmsUser)
{
string formUrl =
ConfigurationSettings.AppSettings["formUrl"].ToString().Trim();//url
地址
string formData = "PhoneNumber=" + PhoneNumber +
"SmsContent=" +SmsContent + "PhoneNumberType=" + PhoneNumberType +
"SmsUser=" + SmsUser + "";
CookieContainer cookieContainer = new CookieContainer()
Q2: asp.net页面如何接收AJAX传递过来的数组(普通数组和jason数组,两个麻烦都给举个例子)
在.cs文件中,用 Page.Request["参数名"]就可以得到AJAX传递过来的值。
在 asp.net中,无论是普通数组还是JSON数组,都可以先转换成字符串,然后传递过去。asp.net mvc可以直接传对象.
例如:
在JS中:
//这里用的是Jquery的ajax
funcation test()
{
var d = [1, 2, 3]; //数组
var s = d.join(','); //转换成字符串
$.ajax({
url: "要访问的地址",
data: { p: s,n:d }, //p是参数名,s是值
success: function (msg) {
//msg是返回的结果,这里对返回值进行处理
}
});
}
asp.net后台:
public void TestData()
{
string s=Page.Request["p"];//得到ajax传递的参数p的值
string[] d=s.split(',');//转换成字符数组,至于怎么转成整形数组我就不写了。
}
asp.net mvc后台:
public JsonResult TestData(string p,int[] n)
{
string[] d=p.split(',');//转换成字符数组
return Json(new {xxxx});
}
JSON数组和普通数组一样处理,都可以拼成字符串,然后传递
Q3: .net webapi怎么接收到json格式的参数
参数直接用model,调用的时候给按这个model 的格式序列化,映射到action的时候,自动会转换为对应的model
关于.net如何前端接收json和net 前端的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。





