1

What is the recommended way to handle "Nick / Email taken" AJAX validation in MVC that integrates nicely with validators provided by DataAnnotantion (@Html.ValidationMessageFor(model => model.Email))? I understand that I would probably have something like this:

<input id="email" onBlur="emailTaken();" onchanged="emailTaken();" />
<script type="text/javascript">
    function emailTaken() {
        var encodedEmail = enc($("#email").val());
        $.getJSON("/Ajax/EmailTaken/" + encodedEmail, function (data) {
            if (data.res) {
                // all is OK
            } else {
                // TODO: Show Error?
            }
        });
    }
</script>

I already know that on Server I can do ModelState.AddModelError and I am doing it... but I want to know what is recommended way for ClientSide validation? Do I need to invoke some method provided by jquery.validate.unobtrusive.js?

nikib3ro
  • 20,366
  • 24
  • 120
  • 181

1 Answers1

2

You would probably want to use Remote Validation for this. It's built-in, so you don't have to do any of your own javascript.

http://msdn.microsoft.com/en-us/library/gg508808(v=vs.98).aspx

Erik Funkenbusch
  • 92,674
  • 28
  • 195
  • 291
  • 1
    Only downside is that it won't be executed serverside (cfr. http://stackoverflow.com/questions/10494168/limitation-of-modelstate-isvalid-in-asp-net-mvc-3/ ) – Styxxy May 15 '12 at 22:36
  • @Styxxy - True, but neither would his original solution. He needs to do server side validation as well. – Erik Funkenbusch May 16 '12 at 02:35
  • @Styxxy Thanks for providing link... this is definitely something I will look to automate. And I appreciate your spot-on answer Mystere Man – nikib3ro May 18 '12 at 10:41