c# - C# 从 ObjectResult 到字符串(或获取值)
问题描述
我正在使用 IActionResult (任务)上传文件,并在我的控制器中引用它。我想取回的是文件名。
控制器 ->
var imageLocation = await _imageHandler.UploadImage(image);
图像处理程序->
public async Task<IActionResult> UploadImage(IFormFile file)
{
var result = await _imageWriter.UploadImage(file);
return new ObjectResult(result);
}
我的值存储在 imageLocation 中,但我不知道如何访问它(我需要“Value”字符串,以便将其添加到 DB)。
我已经尝试搜索所有内容,但每个人都在使用列表。我这里只需要一个字符串。希望你们能帮助我。谢谢!
解决方案
您可以将结果转换为所需的类型并调用属性
控制器
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);
}
并在控制器中获得预期的值
var imageLocation = await _imageHandler.UploadImage(image);
var value = imageLocation.Value;
更好的是,让函数只返回所需的值
public Task<string> UploadImage(IFormFile file) {
return _imageWriter.UploadImage(file);
}
这样你就可以在控制器中调用函数时得到预期的结果。
string imageLocation = await _imageHandler.UploadImage(image);
推荐阅读
- elk - ELK 设置的端口
- docker - 如何使用 prometheus 查找容器的状态?
- android-jetpack - Jetpack Compose - 如何向可组合添加多个修饰符,顺序是否重要?
- xamarin.forms - Visual Studio Xamarin 表单不显示设计视图
- google-cloud-platform - 我可以直接将 GCP 的 IAM 政策应用于资源吗
- swift - SFSpeechRecognizer 能用拼音返回结果吗?
- c++ - 具有依赖和文件写入的 c++ 单元测试
- python-3.x - 在字典中找到最大的元素索引?
- python-3.x - 如何在一个函数中将 matplotlib 图表与 networkX 图表结合起来?
- python - ErrorSchemaValidation 对电子邮件主题的多个过滤器查询(由于“已超过最大读取深度 (32)”)