在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
返回的对象列表......
答案 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);
}
}