model 定义如下:
public partial class TestClass
{
public TestClass()
{}
private int _id;
private string _teststring;
/// <summary>
///
/// </summary>
public int Id
{
set { _id = value; }
get { return _id; }
}
/// <summary>
///
/// </summary>
public string TestString
{
set { _teststring = value; }
get { return _teststring; }
}
}
现在如果需要在Extjs的 grid中显示上面model中格式的数据,则要求返回的json格式大致如下:
{"totalCount":2,"data":[{"Id":1,"TestString":"This is a test string1"},
{"Id":2,"TestString":"This is a test string2"}]}
为了能返回如上格式的json串,我此前的做法是再定义一个类
public class ExtJson
{
public long totalCount;
public List<TestClass> data = new List<TestClass>();
}
然后在Controller中实例化ExtJson extjson=new ExtJson(); ,将totalCount属性和data属性赋值好值以后,通过Json方法返回Json结果:
return Json(extjson, JsonRequestBehavior.AllowGet);
今天偶然在一个网站上看到其实完全不必多此一举定义之前我需要的ExtJson类,可以采用如下的方式:
List<TestClass> testclasslist= new List<TestClass>();
return Json(new { totalCount = testclasslist.Count, data = testclasslist}, JsonRequestBehavior.AllowGet);
这样在代码上很直观的显示出我返回的json格式,而且不需要定义多余的类。
ps:本人是新手,刚学习extjs和.net mvc,高手们就别嘲笑了。