使用Json Result从一个动作到另一个动作

时间:2014-04-15 03:50:49

标签: c# asp.net-mvc json asp.net-mvc-3

我之前已经定义了使用JsonResult返回List<T>() int Json格式的操作。 我想将相同操作的JSON结果用于另一个操作。

为了更好地理解, 我的共同行动是::

public JsonResult GetReferences(long CustomerID)
    {

         var CustomerReference = new List<ReferenceViewModel>();
         //Code to push data into CustomerReference
         return Json(CustomerReference.OrderBy(x=>x.ReferenceName));
    }

我想将上面的JsonResult用于我的其他Action :: *

public ActionResult MassUpdate(List<long> CustomerIDs, List<long> DocumentIDs) 
        {
                List<ReferenceViewModel> JsonCustomerReference =  GetReferences(CustomerID);
        }

但是我无法在这里访问JsonResult。我怎么能这样做?

2 个答案:

答案 0 :(得分:0)

GetReferences正在返回一个不是List的JSONREsult。为什么不试试这一点:

private IEnumerable<ReferenceViewModel> getReferences(long CustomerID)
{
   var customerReferences = new List<ReferenceViewModel>();
   //Code to push data into CustomerReference
   return customerReferences;
}

public JsonResult GetReferences(long CustomerID)
{
     return Json(customerReference(CustomerID).OrderBy(x=>x.ReferenceName));
}

public JsonResult MassUpdate(List<long> CustomerIDs, List<long> DocumentIDs)
{
    var allData = CustomerIDs.SelectMany(x => customerReference(x)).OrderBy(x=>x.ReferenceName);
    return Json(alldata);
}

我在这里做一些假设。但我认为这就是你的目标。您还可以将getReferences的返回类型更改为IEnumerable,并在每个Action中进行排序,如果这是您的目的。我更新了我的答案,以反映这一变化。

答案 1 :(得分:0)

我希望你想要这样的东西。

JsonResult在Data Property中保存数据。哪个是对象,所以你需要把它丢回来。

列出JsonCustomerReference =(List)((JsonResult)GetReferences(CustomerID))。数据;