如何获取控制器方法的返回值?

时间:2014-02-04 12:01:23

标签: c# asp.net-mvc asp.net-mvc-4 asp.net-mvc-controller

在MVC4中,我试图在另一个使用RedirectToAction的控制器方法中使用一个控制器方法,但在尝试接收其他控制器方法的返回值时显示错误。

我有以下控制器方法:

public class TranslationController : Controller
{
   public ActionResult Search_Query()
   {
        List<Surah> Records = new List<Surah>();
        Records = RedirectToAction(" Load_Surahs", "Surah_CRUD");
        ...
        return Json(new { key = Records }, JsonRequestBehavior.AllowGet);
   }
}

另一种控制器方法:

public class Surah_CRUDController : Controller
{
   public ActionResult Load_Surahs() 
    {
         List<Surah> Records = new List<Surah>();
         ...
         return Json(new { key = Records }, JsonRequestBehavior.AllowGet);
    }
}

如何修复它,我的意思是我想在Load_Surahs方法中使用Search_Query返回的对象列表......

3 个答案:

答案 0 :(得分:0)

Load_Surahs()的返回类型更改为JsonResult

答案 1 :(得分:0)

将代码更改为:

public ActionResult Load_Surahs() 
        {
             List<Surah> Records = new List<Surah>();
             ...               

             return RedirectToaction("Search_Query","TranslationController ", 
                                      new {jsData = "Your Json data here" });
        }

在你的其他行动中使用

public ActionResult Search_Query(Json jsData)
        {

        }

答案 2 :(得分:0)

将方法GetSurah置于单独的服务中。并在两个控制器中使用此服务。

public class TranslationController : Controller
{
   public ActionResult Search_Query()
   {
       List<Surah> Records = someService.GetSurah();
       ...
       return Json(new { key = Records }, JsonRequestBehavior.AllowGet);
   }
}


public class Surah_CRUDController : Controller
{
   public ActionResult Load_Surahs() 
    {
         List<Surah> Records = someService.GetSurah();
         ...
         return Json(new { key = Records }, JsonRequestBehavior.AllowGet);
    }
}