C# 从ObjectResult获取值
我有一个这样的过滤器:C# 从ObjectResult获取值,c#,asp.net-core,C#,Asp.net Core,我有一个这样的过滤器: public class Err : ActionFilterAttribute { public override void OnActionExecuted(ActionExecutedContext context) { var result = context.Result; } } result是Microsoft.AspNetCore.Mvc.BadRequestObjectResult的对象。它包含一个StatusC
public class Err : ActionFilterAttribute
{
public override void OnActionExecuted(ActionExecutedContext context)
{
var result = context.Result;
}
}
result
是Microsoft.AspNetCore.Mvc.BadRequestObjectResult的对象。它包含一个StatusCode
和一个值
,但当我尝试这样提取它们时:context.Result.Value
,我得到以下错误:
错误CS1061“IActionResult”不包含“Value”的定义,并且找不到接受“IActionResult”类型的第一个参数的可访问扩展方法“Value”
这很简单-ActionExecutedContext的属性
Result
具有IActionResult
类型,而该类型没有属性值。您可以将其强制转换为BadRequestObjectResult
,以访问Value
属性:
public class Err : ActionFilterAttribute
{
public override void OnActionExecuted(ActionExecutedContext context)
{
var result = context.Result as BadRequestObjectResult;
// you can access result.Value here
}
}
这是可行的,但是我的值
对象有两个属性-消息
和状态
。即使我可以访问值
对象,我仍然无法访问它们。没关系。我将值
转换为对象的类型,并公开了消息
属性。非常感谢。