我有一个类型为double的OrderNumber模型属性?我想更改默认值“值'abc'对订单号无效。”为其输入字母数字(或其他无效)数据时生成的错误消息,但我只想对模型对象中的OrderNumber属性执行此操作。我已经尝试使用正则表达式数据注释,但这仅适用于客户端验证(就自定义错误消息而言),因为在服务器端,数据在基本属性数据类型上失败(不是在正则表达式注释开始之前加倍?)对于某些表单,我们有很多输入对象,所以我们必须禁用客户端脚本,因为它会导致速度问题,而且我们的一些客户端会禁用脚本,所以我们需要在服务器端使用此自定义错误消息。如果输入的数据类型不正确,如何设置自定义错误消息?
这也需要与本地化兼容(例如,我的显示标签注释是[Display(ResourceType = typeof(Localisation.Resources),Name =“OrderNumberLabel”)])
答案 0 :(得分:-1)
这可以通过设置DefaultModelBinder ResourceClassKey属性
来实现在您的应用程序下创建“App_GlobalResources”文件夹并添加资源文件。 (我们将其命名为“MyResource.resx”)。
现在添加一个键“PropertyValueInvalid”并分配你的errorTemplate。(例如“属性{1}的内容{0}无效”)。
应该看起来像..
现在在global.asax
中的“Application_Start”中添加以下行DefaultModelBinder.ResourceClassKey = "MyResource";
现在您将看到自定义错误。(对于非JS)