public JsonResult GetReport(string reportSelected, string firstDateGiven)
{
_context = new ReportDB();
var theResults =
miPolicyTransactions.Select(
x =>
new
{
PolicyReference = x.PolicyReference,
TransactionType = x.TransactionType
...
}).ToList();
var theadColumns = new[]
{
new {columnName = "Policy Reference"},
new {columnName = "Transaction Code"}
...
}.ToList();
return Json(new { data = theResults, columns= theadColumns }, JsonRequestBehavior.AllowGet);
}
以上是我开始使用的内容,但我使用了字典功能来简化调用并创建其他内容。
private Dictionary<string, Func<IReportDB, string, JsonResult>> functions = new Dictionary<string, Func<IReportDB, string, JsonResult>>
{
{ "New Business by Agent last 3 Months(set)", NewBusinessAgentLast3Month},
{ "New Business by Agent last 7 days (set)", SomeOtherMethodName}
};
private static JsonResult NewBusinessAgentLast3Month(IReportDB context, string parameters)
{
_context = new ReportDB();
var theResults =
miPolicyTransactions.Select(
x =>
new
{
PolicyReference = x.PolicyReference,
TransactionType = x.TransactionType
...
}).ToList();
var theadColumns = new[]
{
new {columnName = "Policy Reference"},
new {columnName = "Transaction Code"}
...
}.ToList();
return ??????????????????????????
我收到错误时无法返回Json对象
非静态字段方法需要对象引用, 属性。无法在静态上下文中访问非静态Json。
我可以避免创建具有每个具体类型列表的具体类型,但仍然将两个匿名列表传递给调用方法,然后将其作为JsonResult返回,该JsonResult在我的Jquery文件中使用?你会使用List还是有另一种方式?
答案 0 :(得分:1)
您应该更改功能(例如NewBusinessAgentLast3Month
)以返回object
。然后,您应该将此值传递给Controller.Json
方法,该方法将创建一个可以从控制器返回的JsonResult
。
您的代码中的问号应替换为您在重构之前使用的相同匿名类型。