C# 从 ObjectResult 到字符串(或获取值)

标签 c# asp.net-core-2.0

我正在使用 IActionResult(任务)上传文件,并在我的 Controller 中引用它。我要取回的是文件名。

Controller ->

        var imageLocation = await _imageHandler.UploadImage(image);

图像处理器 ->

    public async Task<IActionResult> UploadImage(IFormFile file)
    {
        var result = await _imageWriter.UploadImage(file);

        return new ObjectResult(result);
    }

我的值存储在 imageLocation 中,但我不知道如何访问它(我需要“值”字符串以便将它添加到数据库中)。

enter image description here

我尝试搜索所有内容,但每个人都在使用列表。我这里只需要一个字符串。 希望你们能帮助我。谢谢!

最佳答案

您可以将结果转换为所需的类型并调用属性

Controller

var imageLocation = await _imageHandler.UploadImage(image);
var objectResult = imageLocation as ObjectResult;
var value = objectReult.Value;

或者只是重构 ImageHandler.UploadImage 函数以返回实际类型以避免强制转换

public async Task<ObjectResult> UploadImage(IFormFile file) {
    var result = await _imageWriter.UploadImage(file);
    return new ObjectResult(result);
}

并在 Controller 中获取预期的值

var imageLocation = await _imageHandler.UploadImage(image);
var value = imageLocation.Value;

更好的是,让函数只返回所需的值

public Task<string> UploadImage(IFormFile file) {
    return _imageWriter.UploadImage(file);
}

这样您就可以在 Controller 中调用函数时得到预期的结果。

string imageLocation = await _imageHandler.UploadImage(image);

关于C# 从 ObjectResult 到字符串(或获取值),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52588847/

相关文章:

c# - 将 secret 设置存储在 .cs 文件而不是 Web.config 中是否安全?

c# - WPF中如何制作图片形状的按钮?

c# - Xamarin 表单错误值不能为空。参数名称 : type

C# ASP.NET Core 2.0 + Azure AD 身份验证 : auto sign out after user's inactivity for certain period

c# - Ninject - 请求范围已被处理

c# - 如何从后面的 C# 代码生成 C# 类文件?

c# - 来自数据库表的 ASP.NET Core 2 授权

c# - 没有注册类型 'MyType' 的服务

c# - ASP.NET Core 2.0 Web API Azure Ad v2 token 授权不起作用

c# - Entity Framework 在运行时将模型类映射到表