使用 Easy+ASP.NET MVC 接收json数据

屎涂行者 2017-03-20 11:53:19



<script src="../../JS/Script/JavaScript/jquery-1.8.2.min.js" type="text/javascript"></script>
<link href="../../EasyUI/css/default.css" rel="stylesheet" type="text/css" />
<link href="../../EasyUI/js/themes/default/easyui.css" rel="stylesheet" type="text/css" />
<link href="../../EasyUI/js/themes/icon.css" rel="stylesheet" type="text/css" />
<script src="../../EasyUI/js/jquery-1.4.2.min.js" type="text/javascript"></script>
<script src="../../EasyUI/js/jQuery.easyui.js" type="text/javascript"></script>


<div id="dlg" class="easyui-dialog" title="策略规则" style="width:550px;height:300px;"
data-options="resizable:true,modal:true">
<table id="dg" class="easyui-datagrid" style="width:550px;height:300px;"
data-options="singleSelect:true,collapsible:true">
<thead>
<tr>
<th field="PostID" width="60">帖子ID</th>
<th field="UserID" width="100">用户ID</th>
<th field="PostTitle" width="150">标题</th>
<th field="offNo" width="50">是否正常</th>
<th field="PostDengjiID" width="50"">等级</th>
</tr>
</thead>
</table>
</div>

<script type="text/javascript">
$(function () {
alert("22222");
var url = "../ajax/DemoJson2.ashx";
$.post(url, function (res) {
alert(res);
var json = JSON.parse(res);
alert(json);
var datasource = { "total": total.toString, "rows": json };
$("#dg").datagrid('loadData', datasource);
$('#dlg').dialog('open');
})
});
</script>





ashx.cs代码

public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
int total = 0;
//获取该策略下的所有规则
List<Post> list = new List<Post>();

string sql = "Select PostID,PostTitle,PostDengJiID,OffNo,UserID From Post";
DataTable dt = DBHelper.GetDataTable(sql);
for (int i = 0; i < dt.Rows.Count; i++)
{
Post rule = new Post();
rule.PostID = Convert.ToInt32(dt.Rows[i]["PostID"].ToString());
rule.PostTitle = dt.Rows[i]["PostTitle"].ToString();
string ruleType =dt.Rows[i]["PostDengjiID"].ToString();
//规则类型
//1 普通
//2 精品
//3 置顶
//4 警告
switch (ruleType)
{
case "1":
rule.PostDengjiID = "普通";
break;
case "2":
rule.PostDengjiID = "精品";
break;
case "3":
rule.PostDengjiID = "置顶";
break;
case "4":
rule.PostDengjiID = "警告";
break;
}
string offno = dt.Rows[i]["offNo"].ToString();
switch (offno)
{
case "1" :
rule.offNo = "正常";
break;
case "0" :
rule.offNo = "不正常";
break;
}
rule.UserID =Convert.ToInt32(dt.Rows[i]["UserID"].ToString());
list.Add(rule);
}
System.Web.Script.Serialization.JavaScriptSerializer jss = new System.Web.Script.Serialization.JavaScriptSerializer();
string json = jss.Serialize(list);
total = list.Count;
context.Response.Write(json);


//System.Runtime.Serialization.Json.DataContractJsonSerializer serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(list.GetType());
//using (MemoryStream ms = new MemoryStream())
//{
// serializer.WriteObject(ms, list);
// context.Response.Write(Encoding.UTF8.GetString(ms.ToArray()));
//}

}


返回的数据在JS 中能接收到正常的Json数据,但是在跟动态表头配合显示数据时就是显示不出,请问各位大神这是什么原因啊?是不是有什么文件没有引用到?还是代码写错什么的。找了好久没有找出问题







...全文
371 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
by_封爱 2017-03-20
  • 打赏
  • 举报
回复
1`你这东西跟mvc好像没什么关系... 2`构造json的问题..

var datasource = { "total": total.toString, "rows": json };
明显的 你连total参数都没有啊... 最起码的 你输出的时候应该是这样的..

var json=new{total=list.count,list=list};
write(Serialize(json));

var datasource = { "total": json.total "rows": json.list };
当然这只是基本的..
songzx66 2017-03-20
  • 打赏
  • 举报
回复
datagrid的参数给的不全,找不到对应的field。 建议仔细看一下文档 http://www.jeasyui.com/extension/datagridview.php
丰云 2017-03-20
  • 打赏
  • 举报
回复
顺便说下,jquery的ajax方法,是可以直接拿到json格式的数据的,完全不需要JSON.parse(res)这样多此一举的。。。。。
丰云 2017-03-20
  • 打赏
  • 举报
回复
既然js取到了json数据,你贴后端那么多代码有毛用。。。。。 你的取到的数据没有绑定到datagrid,你应该检查你的绑定方法!!! 你能查看是否取到了json数据,为何不能继续调试下去呢???? 真心搞不懂。。。。

62,244

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧