But wait, we're doing Model State checks in the controller action again!There is a simple solution to this, but you need to make a compromise.So now you have no excuse for writing that dreaded Model State check. Note: j Query validation does not work with the Range attribute and Date Time.I also, know that there are Nuget packages like Fluent Validation and Foolproof that does the trick for validating and checking if one date is greater than other, but I wanted to know if by default there is something to check the date's min and max value.From what I saw in Whats new in MVC 5.1, There is support for Normally I use this solution when I want to validate something in the server.The thing I don't like about my original approach is that it means I need to write my "Success" code inside a delegate.It's only a few extra brackets and curly braces but I still don't like it.
If the value is not included in the method then the validator will fail and return false.Temp Data is a great place for this and since I'm not the first person to be having this moment of clarity, there is already code available for doing it (in Mvc Contrib and by Kazi Manzur Rashid).By using these attributes we no longer need to worry about rebuilding the view model in our POST action. Here's an example using the attribute: attribute on the GET action.The above Action Filter does more or less the same job as the code at the beginning of this article.The problem is that Model State only contains the properties of the Model that were POSTed to the server and handled by the MVC Model Binder. NET MVC applications your GET "View" is likely to be more complex than your POST "command" - perhaps you have a few Great, now if Model State is invalid, we can rebuild the model and then pass it back to the View.I made various attempts to rebuild the view model inside possible but requires a fair bit of reflection, and to be honest, is totally unecessary.