自定义客户端消息

时间:2011-06-20 07:17:47

标签: c# javascript jquery asp.net-mvc-3 jquery-validate

我想使用属性在我的模型上本地化我的错误消息。 我创建了App_GlobalResources并添加了ResourceMessages。我补充道 PropertyValueInvalid - 我的错误消息

在Global.asax中我添加了

DefaultModelBinder.ResourceClassKey = "ResorceMessages";
ValidationExtensions.ResourceClassKey = "ResorceMessages";

如果我没有启用客户端验证,则无需执行此操作。但如果我有

<script src="<%: Url.Content("~/Scripts/jquery.validate.min.js") %>" type="text/javascript"></script>
<script src="<%: Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js") %>" type="text/javascript"></script>

包含在我的母版页中,我获得了标准验证消息。

我该如何解决这个问题?


[Required(ErrorMessageResourceName = "Required", ErrorMessageResourceType = typeof(ResursPoruke))]

[Remote("ProvjeraGodine", "RemoteValidacije", "Godina nije validna")]

[Display(ResourceType = typeof(Resource), Name = "OsnovniPodaci_Godina")]

public int Godina { get; set; }

PropertyValueInvalid    Vrijednost "{0}" nije ispravna za polje: {1}

我应该得到错误;

Vrijednost "dkdkdkdkdk" nije ispravna za polje: Godina 

但我收到错误

The field Godina proizvodnje must be a number.  

如果我转向jquery验证,我收到了我的消息。 如果我有jquery验证,如何获得验证消息?

2 个答案:

答案 0 :(得分:1)

您说您添加了ResourceMessages资源,但您的类密钥指向不同的字符串ResorceMessages。这是一个错字吗?

DefaultModelBinder.ResourceClassKey = "ResorceMessages"; <<----
ValidationExtensions.ResourceClassKey = "ResorceMessages"; <<----

答案 1 :(得分:0)

默认验证消息与密钥InvalidPropertyValue一起存储(而默认模型绑定器错误消息包含PropertyValueInvalid")。 但是,如果已经定义了错误消息,则不使用此默认消息。