Web Api错误消息本地化

时间:2015-05-11 10:32:28

标签: asp.net-web-api asp.net-web-api2

在.NET WebApi中,我有一个请求模型类。 必需属性工作正常。它返回自定义错误消息。 但转换错误的类型返回默认错误消息。

如何更改此消息?

enter image description here

public class MyTest
{
    [Required(ErrorMessageResourceType = typeof(ApiMessages), ErrorMessageResourceName = "Glb_Required")]
    public int? Code { get; set; }

    [Required(ErrorMessageResourceType = typeof(ApiMessages), ErrorMessageResourceName = "Glb_Required")]
    [StringLength(50, MinimumLength = 1, ErrorMessageResourceType = typeof(ApiMessages), ErrorMessageResourceName = "Glb_StringLength")]
    public string Name { get; set; }

    [Required(ErrorMessageResourceType = typeof(ApiMessages), ErrorMessageResourceName = "Glb_Required")]
    [StringLength(50, MinimumLength = 1, ErrorMessageResourceType = typeof(ApiMessages), ErrorMessageResourceName = "Glb_StringLength")]
    public string Surname { get; set; }
}

1 个答案:

答案 0 :(得分:0)

有很多NuGet软件包包含不同语言和技术的资源。如果你足够幸运,你会得到你想要的语言。如果没有,你将不得不采取其他语言的一个附属程序集并将其转换为你的。例如:

我已经展示了EF的资源,因为这是包含与数据注释EF验证相关的验证消息的资源(我认为这些是您正在展示的错误)。如果您的消息不是来自EF验证,那么还有用于ASP.NET MVC的资源包以及许多其他Microsoft技术。如果您的语言是西班牙语,请在NuGet中获取“用于ASP.NET MVC的语言资源”,例如“RecursosparaespañolparaASP.NET MVC”。

注意:请记住更改网站的区域性配置,以便使用所选语言。如果不是,它将无效

如果您需要翻译其中一个程序集,只需使用您的文化扩展名重命名,然后使用visual studio打开它,这样您就可以对其进行编辑。