我需要从控制器到另一个控制器的jsonresult响应中获取值
public ActionResult ToDo(){
...
return Json(new { result = "success" }, JsonRequestBehavior.AllowGet);
}
public ActionResult Caller(){
var response = ToDo;
if (response.Data.result == "success")
...
}
但是不要以这种方式工作
答案 0 :(得分:1)
您可以在MVC中使用TempData
将数据从一个控制器传递到另一个控制器。
在您的第一个控制器中,您可以做些什么。
public ActionResult ToDo(){
...
var result=new { result = "success" };
TempData["jsonData"]=result ;
return Json(result, JsonRequestBehavior.AllowGet);
}
然后在您的第二个控制器中,您可以获得其值,如下所示:
public ActionResult Caller(){
var response = TempData["jsonData"];
System.Reflection.PropertyInfo finalresult =response.GetType().GetProperty("result");
string output = (string)(finalresult.GetValue(response, null));
if (output == "success")
...
}
但是请记住,TempData
仅在第一次调用控制器时可用。如果您要重定向到其他控制器,则TempData
的值会丢失。为此,您需要通过创建适当的模型并将其传递给ToDo
控制器来进行模型绑定。