我的问题是:如何将这两个操作结果合并为一个?让第一个只做一条线似乎没有意义。但我看不到出路。任何想法,将不胜感激。剩下的我提供背景。
我正在尝试并成功返回带有我需要的 Json 结果的部分视图,但我使用两个同名的 ActionResult(一个带有参数一个没有)来实现这一点。如果我以这种方式继续,我将不得不重复我所有的 ActionResults 两次。我遇到的问题是,第一个操作结果只不过是字面意思:
[HttpGet]
public ActionResult MyResults()
{
return PartialView();
}
用于返回视图。在视图中,我有一些 JQuery/Ajax 反过来调用另一个同名但带有参数的操作结果。此操作结果有效地填充了一个 Json 对象,然后将其解析并作为表格呈现到上面的视图中。这个 actionresult 有效地完成了所有工作。它看起来像:
[HttpPost]
public ActionResult MyResults(DataTablePrameters param)
{
//Get the full list of data that meets our needs
var fullList = _myResultsRepository.GetListByID(Id);
//Count the records in the set
int count = fullList.Count();
//Shorten the data to that required for the page and put into object array for Json
var result = from r in fullList.Skip(param.iDisplayStart).Take(param.iDisplayLength)
select new object[]
{
r.field1,
r.field2,
r.field3
};
//Return Json data for the Datatable
return Json(new
{
sEcho = param.sEcho,
iTotalRecords = param.iDisplayLength,
iTotalDisplayRecords = count,
aaData = result
});
}
那些不熟悉它的人不会知道我正在使用 DI/IOC,并且为简洁起见,我没有包含详细信息。但这不是我的问题。上面的代码也使用了来自以下站点的数据表:
这实际上是相当不错的。再次,使用以上所有内容,我的代码运行良好。所以我没有问题。我知道它的效率有点低,因为它将结果集加载到一个变量中进行计数,然后跳过...采取等等,但同样,它有效,这不是我的问题。
所以我唯一的问题是,我怎样才能将它们两者结合到一个视图中。让第一个只做一条线似乎没有意义。但我看不到出路。任何想法,将不胜感激。