我真的很迷失为我的 MVC3 应用程序创建自定义通用验证消息。
我阅读了许多教程,其中大部分都建议了以下选项之一:
创建一个 App_GlobalResources 文件夹并在其中放置我的自定义资源,我更改 global.asax,将我的资源的字符串名称传递给
DefaultModelBinder.ResourceClassKey
属性。将资源的构建操作更改为“嵌入式资源”。右键单击项目,然后转到属性,单击“资源”选项卡并创建您的自定义资源。将其访问修饰符设置为“公共”。
第一个对我不起作用,我的资源中有以下键: DefaultModelBinder_ValueRequired、InvalidPropertyValue、PropertyValueInvalid、PropertyValueRequired ,当我尝试在模型的必需属性中提交和形成空值时,没有使用它们. 我已将此代码放在 global.asax Application_Start 方法中:
DefaultModelBinder.ResourceClassKey = "My_Resource_Name";
使用第二种方法,我创建了一个与第一种方法具有相同键的资源。当属性无效或为空时,默认情况下不使用它们(我也更改了 global.asax 中的 ResourceClassKey,但没有成功)。但是当我在模型中向数据注释添加一些参数时:
[Required(ErrorMessageResourceType = typeof(MyResourceFile), ErrorMessageResourceName = "MyCustomKey")]
当该数据注释的属性为空时,使用我用“MyCustomKey”定义的消息!
但我真的不想手动将其设置为我的所有属性,我想替换默认错误消息,例如:“{0} 字段是必需的。”