如何从asp.net mvc Action Method返回复杂的JSON对象

时间:2014-08-01 14:15:53

标签: asp.net asp.net-mvc json entity-framework-5 asp.net-mvc-5

我正在开发一个asp.net mvc Web应用程序,它连接到两个不同的DB(我将它们命名为dbA和dbB)。目前,我需要创建一个包含来自不同表的值的JSON对象。

这两张表格如下: -

Table Technology from dbA,包含以下字段: -

>> dbAID , Tag , db2ID

来自dbB的table Resource有: -

>> Db2ID , Name

我有以下Action方法: -

public ActionResult AutoComplete(string term)

        {

var tech = dbA.Technology.Where(a=>a.Tag.StartWith(term));//select all technology that have their tags start with passed term

var db2IDList = tech.Select(a=>a.db2ID).ToArray();//create a list of db2ID



var resource = dbB.Resource.Where(db2IdList.Contains(a=>a.dbBID));//get the resource based on the db2IDList



JsonResult j = newJsonResult();

//here I want the json to contain the Technology.Tag + ResoruceNane, where the join is based on the db2Id stored insdie the technology table



        }

那么,任何人都可以尝试构建我的JSON对象的最佳方法吗?

由于

2 个答案:

答案 0 :(得分:0)

匿名类型:http://msdn.microsoft.com/en-us/library/bb397696.aspx

框架提供了JsonResult,由Json(对象)助手生成。

e.g。 return Json(new { field1 = resource.fieldOne, field2 = resource.fieldTwo })

答案 1 :(得分:0)

你可以构建一个List,我觉得它更容易:

List<Object> _return=new List<object>();
_return.Add(Technology.Tag);
_return.Add(ResoruceName);
Return Json(new {Success=true, _return});

//然后在你的Javascript中获取这些对象,这将是一个易于使用的数组