首页 > 解决方案 > 从 IActionResult 获取值

问题描述

Task<IActionResult> MyCustomEndpoint我有一些正在返回的端点的控制器return Ok(CustomDataType)。返回的数据是 JSON fromat。

现在我想从其他控制器调用那个端点,比如var resp = myController.MyCustomEndpointresp 变成IActionResult。问题是resp现在不再只返回数据,而是图像上看到的所有这些字段。

在此处输入图像描述

我的问题是,如何只访问和返回Value字段,因为resp.Value它不起作用。

感谢帮助。

标签: asp.netasp.net-mvc.net-coreasp.net-core-mvc

解决方案


你必须转换为as ObjectResult

public async Task GetFormSummary_ItShouldReturnSingleForm_NotNull()
{

    var formId = new Guid("5EF685E7-1167-4226-7F5E-08D9009544A3");
   
    var mockFormService = new Mock<IFormService>();

    mockFormService.Setup(x =>  x.GetAsync(formId).Result)
        .Returns(GetTestForm());

    // Inject
    var formController = new FormController(_logger, mockFormService.Object);

    // Act
    var result = (await formController.GetAsync(formId)) as ObjectResult;

    // Assert
     Assert.IsAssignableFrom<FormViewModel>(result.Value);

}

推荐阅读