You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core多语言API响应如何移除元数据仅返回值

移除ASP.NET Core多语言API响应中的多余元数据,仅返回本地化文本

问题出在你直接返回了LocalizedString对象(_localizer["No Data"]的返回值类型),这个对象自带name、resourceNotFound等元数据字段。要只返回纯本地化文本内容,只需提取它的Value属性即可。

解决方案1:直接返回Value属性

修改控制器中的返回语句,明确获取LocalizedString的Value:

private readonly IStringLocalizer<SharedResources> _localizer;
public ProfileController(IStringLocalizer<SharedResources> localizer)
{
    _localizer = localizer;
}

[HttpGet("home-company")]
public IActionResult GetHomeCompany()
{
    // ... 你的业务逻辑代码
    if (company != null)
    { 
        return Ok(complist);
    }
    // 提取Value属性返回,仅输出本地化文本
    return NotFound(_localizer["No Data"].Value);
}

解决方案2:封装扩展方法(复用场景)

如果多个控制器或方法都需要获取纯本地化文本,可以封装一个扩展方法简化调用:

public static class StringLocalizerExtensions
{
    public static string GetLocalizedText(this IStringLocalizer localizer, string key)
    {
        return localizer[key].Value;
    }
}

之后在控制器中这样使用:

return NotFound(_localizer.GetLocalizedText("No Data"));

效果验证

修改完成后,API响应将仅返回对应的本地化字符串(比如英文环境返回"No Data",印尼语环境返回对应的翻译文本),不会包含多余的元数据字段。


内容的提问来源于stack exchange,提问作者S S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 13:23:25