我有一个模型,其属性定义如下:
[Required(ErrorMessage="Please enter how many Stream Entries are displayed per page.")]
[Range(0,250, ErrorMessage="Please enter a number between 0 and 250.")]
[Column]
public int StreamEntriesPerPage { get; set; }
Run Code Online (Sandbox Code Playgroud)
除非用户输入类似"100q"的内容,否则此方法有效.然后会显示一个相当丑陋的错误,上面写着"值'100q'对StreamEntriesPerPage无效."
当输入不是int时,是否有可用于覆盖默认错误消息的属性?
使用App_GlobalResources目录中的resx文件,我已经能够更改模型验证器的PropertyValueInvalid字符串的默认消息.
但是当需要值时,它无法转换消息(PropertyValueRequired.)
在Global.asax.cs Application_Start()中,我更改了资源类键,如下所示:
DefaultModelBinder.ResourceClassKey = "Messages";
Run Code Online (Sandbox Code Playgroud)
在Messages.resx文件中,我放了两个条目:
谢谢.
我有一个完全本地化的网站,主要是法语/英语/德语.
现在,一切都很顺利,但我确实注意到asp.net MVC的一些错误消息的问题.
我的模型中有一个属性:
[Required]
[LocalizedDisplayName("PublicationDate", NameResourceType = typeof(LocalizationResources.Views.Composer.BaseInfoForm))]
public DateTime PublicationDate { get; set; }
Run Code Online (Sandbox Code Playgroud)
LocalizedDisplayname是DisplayNameAttribute的扩展,它位于Resx文件中以获取正确的翻译
线程CurrentCulture和CurrentCultureUI在fr-FR中,因此消息应该以法语显示(就像我的[Required]属性一样,自动显示"Le champ Publication est requis").
但是在DateTime的情况下,如果我输入的东西不是日期,验证器只返回一个" The value 'asdfasdf' is not valid for Publication."所以:
非常感谢你
我需要替换模型状态资源(到另一种语言).
我已经看到了上述问题的一些答案,但不幸的是我无法让它发挥作用.任何详细的答案或例子都会受到批评.
谢谢.
我有一个表单,当它进行不引人注意的验证时,我希望它显示:
此消息:"请输入值. "
而不是这条消息:"此字段是必需的."
我尝试在我的jquery.validate.unobtrusive.js文件的末尾添加它
(function ($) {
$.extend($.validator.messages, {
required: "Please enter a value."
});
}(jQuery));
Run Code Online (Sandbox Code Playgroud)
但它只是不起作用.
我也尝试直接修改jquery.validate.js文件中的"messages"变量,但它也无法正常工作.
你能告诉我怎样才能完成这件事?
asp.net-mvc ×5
validation ×3
c# ×1
file ×1
jquery ×1
localization ×1
modelstate ×1
resources ×1