使用MVC4 c#环境。 我需要为我的jsonObject获取一个namspace。目前我正在使用以下结构。
var results =
Globals.StaticList
.Where(x => x.LookupName.ToLower().Contains(searchString.ToLower()))
.Select(x => new nvp()
{
Name = x.LookupName,
ID = x.LookupName
}).Distinct().ToArray();
return new JsonResult() { Data = results.Take(10), JsonRequestBehavior = JsonRequestBehavior.AllowGet };
返回如下:
[{"Name":"Name 1","ID":"Name 1"},{"Name":"Name 2","ID":"Name 2"}]
问题是我希望它以
的形式返回{"TheNameSpace": [{"Name":"Name 1","ID":"Name 1"},{"Name":"Name 2","ID":"Name 2"}]}
我的nvp类看起来像这样:
[DataContract(Namespace = "TheNameSpace")]
public class nvp
{
[DataMember]
public string Name { get; set; }
[DataMember]
public string ID { get; set; }
}
我已经尝试过像这样的DataContractSerialization的一些不同变体..但是它失败了:
var ms = new MemoryStream();
var ser = new DataContractSerializer(typeof (nvp[]));
ser.WriteObject(ms,results);
var streamreader = new StreamReader(ms);
return streamreader.ReadToEnd();
感谢任何帮助。 感谢
答案 0 :(得分:1)
尝试:
var results =
Globals.StaticList
.Where(x => x.LookupName.ToLower().Contains(searchString.ToLower()))
.Select(x => new nvp()
{
Name = x.LookupName,
ID = x.LookupName
}).Distinct().ToArray().Take(10);
return new Json(new {TheNameSpace= results},JsonRequestBehavior = JsonRequestBehavior.AllowGet);
希望会有所帮助。