I'm developing an asp.net mvc 5 application, in which I'm trying to set a validation for dd/MM/yyyy format, I've been struggling a lot to find an appropriate solution but no success, what I want it to accept:
24/01/2016
but it displays validation message as :
The field JoiningDate must be a date.
Here is what I've tried :
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
public DateTime JoiningDate { get; set; }
Also, I want it to display the date in dd/MM/yyyy format everywhere at the user's end but this is a second part of my question, firstly, it should at least allow a valid date input. I'm stuck on this one, any help will be deeply appreciated, I've searched all over, but I'm not being able to get to the point, Thanks In Advance :)
There is much cleaner solution i figured out.
Client validation issues can occur because of MVC bug (even in MVC 5) in jquery.validate.unobtrusive.min.js which does not accept date/datetime format in any way. Unfortunately you have to solve it manually.
My finally working solution:
You have to include before:
You can install moment.js using:
And then you can finally add fix for date format parser:
I got the answer, I used custom ModelBinder, in order to resolve this issue,
Firstly, I registered this line in the application_start method in Global.asax:
Here is the custom ModelBinder :
Thanks to Darin Dimitrov's answer!
The easiest way, I found was put in the web.config the code below