1

在 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...

4

3 回答 3

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)
        {

        }
于 2014-02-04T12:50:19.580 回答
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);
    }
}
于 2014-02-04T12:51:31.077 回答
0

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

于 2014-02-04T12:05:58.550 回答