【问题标题】:How can I access members of a JsonResult?如何访问 JsonResult 的成员?
【发布时间】:2021-12-24 05:24:07
【问题描述】:

由于某些原因,我不得不尝试检查 JsonResult 的内容是否只是“真实”,但是我找不到访问它的方法。对象本身显示数据在“Value”下的对象中,但是在对象末尾键入“.Value”是无效的。

(我不能简单地重构它,以便我得到一个常规的字符串返回而不是 JsonResult,因为这会涉及很多其他代码更改)

【问题讨论】:

  • 什么是IsNotExistingTacAd?它返回什么?这可能是 MVC 动作吗?请将代码发布为文本,而不是图像。
  • 你真的应该重构这个。特别是它返回一个 boolean... (也:是IsNotExistingCadAd 的返回类型Task<object> 或类似的,你需要cast你的结果先到JsonResponse?)
  • 你能提供IsNotExistingTacAd的实现吗?只是一个建议,尝试做一个空检查:if(result?.Value != "true") 可能是IsNotExistingTacAdd 返回一个可以为空的值,所以如果你没有正确检查,你会得到一个编译错误。不是最佳实践,但您也可以使用 dynamic 而不是 var

标签: c# .net asp.net-mvc asp.net-core jsonresult


【解决方案1】:

在您的情况下,您可以使用此代码

var result= await IsNot....;

if ( result.Value!=null && bool.TryParse(result.Value.ToString(), out var success))
    if ( success ) { };

但是如果你在你的行动中有这个代码

return  new JsonResult (true);

你不必转换

var success = result.Value as bool?;

if ((success != null) && (bool) success) { };

【讨论】:

  • 最简单的解决方法是强制转换,所以我做了var result = (JsonResult) await...,问题就消失了。
猜你喜欢
  • 2016-05-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多