提问人:rd1218 提问时间:10/3/2022 更新时间:10/11/2022 访问量:473
在 ActionResult 中获取 JsonResult
Get JsonResult within ActionResult
问:
我的数据是在 JsonResult 上生成的,其输出如下。
public JsonResult SampleAAA(Guid xxxxx){
//Code ...
return Json(new
{
success = true,
listA,
listB,
}, JsonRequestBehavior.AllowGet);
}
从ActionResult中,我需要调用该JsonResult并获取这些列表。
public ActionResult SampleBBB(Guid xxxxx){
var result = SampleAAA(xxxx);
//How can I access 'listA' and 'listB' ?
//Other code ...
Return View();
}
如何访问这些列表?我确实看到了内容,但我无法访问这些列表以继续在 Visual Studio 中编写代码。result.Data
答:
0赞
Serge
10/4/2022
#1
你可以试试这段代码
var result = SampleAAA(xxxx);
var jsonObject = (JObject)result.Value;
bool success = (bool)jsonObject["success"];
使用 JsonResult 要好得多
return new JsonResult(new
{
success = true,
listA,
listB,
});
评论
0赞
rd1218
10/11/2022
没有编译。在第二行(不包括第三行),Visual Studio错误为:无法将类型“method”转换为“JObject”
0赞
Arian
10/11/2022
#2
使用 .Net 5+,您可以执行此操作:
using System.Text.Json;
var doc = JsonDocument.Parse(YOUR_JSON);
var property = doc.RootElement.GetProperty("ListA");
0赞
rd1218
10/11/2022
#3
感谢所有回复。经过更多的研究,我设法用下面的代码解决了这个问题。
public ActionResult SampleBBB(Guid xxxxx){
var result = SampleAAA(xxxx);
//Steps to have access to those information:
string stringJson = JsonSerializer.Serialize(result.Data);
var resultString = JObject.Parse(stringJson);
var outputA = resultString["listA"].Value<string>();
//...
}
评论
View()
AJAX
Value
JsonResult