我已跟踪this guide了解我的本地化以验证我的工作。但要么我做错了,要么就是不支持。
我有Controller
:
[HttpPost]
public IActionResult Post([FromBody]Customer value)
{
if (ModelState.IsValid)
{
return Ok("Good job!");
}
return BadRequest(ModelState);
}
我注册了我的本地化:
services.AddLocalization(options => options.ResourcesPath = "Resources");
services.AddMvc()
.AddViewLocalization(LanguageViewLocationExpanderFormat.Suffix)
.AddDataAnnotationsLocalization();
我的模特:
public class Customer
{
[Required]
public string FirstName { get; set; }
[Required]
public string LastName { get; set; }
}
这是我的resx和我的目录(所有resx看起来都一样):
我想要的是让资源文件确定当属性名无效时传递的消息。
发布此帖子:
{
"firstname":"John"
}
目前会返回:
{
"LastName": [
"The LastName field is required."
]
}
由于我为Resource
模型创建了Customer
,我希望结果返回:
{
"LastName": [
"The Surname field is required."
]
}
我知道我可以这样使用Display
:
[Display(ResourceType = typeof(Models_Customer), Name = "FirstName")]
...但我认为naming the resource-files基于模型的整个观点是为了避免它。
答案 0 :(得分:0)
我有同样的问题。但是我猜想,它仅适用于像这样的resx filname:
Models.Customer。 zh-CN .resx
我像您一样尝试过,但是此文件名仅适用于文化区域信息。
贪婪
P.S .:我愿意接受Models.Customer之类的解决方案。 zh_CN .resx