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