2014-01-14 4 views
0

У меня есть пользовательское сообщение, которое является типом возвращаемого метода удаленной проверки, когда тип возвращаемого значения был логическим, он работал нормально, но теперь, когда я изменил тип возвращаемого значения, тогда я получаю ввод -validation-error в поле ввода, но не отображается сообщение об ошибке (у меня написано сообщение об ошибке). я не знаю, что вызывает добавление этого класса в поле ввода.Удаленная проверка MVC4 не работает должным образом

Дистанционное Validation

[Remote("Checkmail", "api", ErrorMessage = "Already taken")] 
     public string Email { get; set; } 

метод, который вызывается

public Message Checkmail(string email) 
     { 
      try 
      { 

       if(email=="[email protected]") 
        { 
         return new Message{MessageCode = "True"}; 
        } 
      return new Message{MessageCode= "false"}; 
      } 
      catch (Exception) 
      { 
       throw; 
      } 
     } 

AJAX вызова

$(document).ajaxComplete(function (event, xhr, settings) { 

      var status = xhr.responseJSON; 
       if (status.MessageCode == "True") { 
        //CSS to change 
       } 
+0

Сообщение придет код, прежде чем ваш Q получает вниз проголосовали. :) – Ciwan

+0

i dnt думаю, что этот вопрос требует кода. но все равно Ill add it – Nikitesh

+0

Попробуйте вернуть JsonResult вместо 'public JsonResult Checkmail (строка email)', json должен иметь логическое значение и сообщение. Дай мне знать. –

ответ

2

Pl легкость, read this article, что дает полное объяснение того, как работает удаленная проверка. Обратите особое внимание на этой линии:

Любой ответ, кроме истинно считается ложным

Так что, если ваш JSON отличается от истины, это рассматривается как ошибка. И, если это строка, она будет показана как сообщение об ошибке на стороне clien.

Итак, ваш пульт дистанционного действия valdiation должен возвращать:

  • либо true, если это правильно
  • или строка с сообщением об ошибке, которое будет показано в браузере

Если вы возвращаете что-либо еще, это будет считаться ошибкой, но сообщение будет потеряно. Если вы получили сообщение об ошибке, верните эту строку из действия проверки в своем контроллере.

Так что ваши действия должны вернуть JsonResult, вы можете вернуть то, что вам нужно:

if (valid) 
{ 
    return Json(true); 
} 
else 
{ 
    return Json("this is the error message"); 
} 
+0

, так что есть какая-то работа для передачи строки и получения истинного ответа. – Nikitesh

+0

Зачем вам нужно передать строку, если результат проверки правилен? Дайте мне знать причину, и, возможно, я могу вам помочь. – JotaBe

+0

его для дальнейшей цели мне нужно передать объект как ответ, который используется дальше. поэтому тип ответа не может быть истинным или ложным. – Nikitesh

Смежные вопросы