cashmere
cashmere

Reputation: 925

Custom client message

I want to localize my error messages on my model using attributes. I created App_GlobalResources and added ResourceMessages. I added PropertyValueInvalid- my error message

In Global.asax I added

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

This work without if I do not have enabled client validation. But if I have

<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>

included in my master page, I get standard validation message.

How can I solve this problem?


[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}

I should get error like;

Vrijednost "dkdkdkdkdk" nije ispravna za polje: Godina 

but I get error

The field Godina proizvodnje must be a number.  

If I turn of jquery validation, I get my message. How can I get validation message if I have jquery validations?

Upvotes: 2

Views: 770

Answers (2)

Tz_
Tz_

Reputation: 2949

The default validation message is stored with the key InvalidPropertyValue (while the default model binder error message with the PropertyValueInvalid"). However, this default message is not used if there is an error message defined already.

Upvotes: 0

Luis
Luis

Reputation: 11

You said you added a ResourceMessages resource, but your class key is pointing out to a different string ResorceMessages. Is it a typo?

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

Upvotes: 1

Related Questions