2015-11-23 5 views
-4

Когда я пытаюсь написать любое имя, которое доступно в базе данных, оно говорит, что имя пользователя доступно, вы можете его использовать. Он не входит в состояние if. Это должно быть как имя пользователя уже доступно, вы должны попробовать другое.Проверка доступности имени пользователя всегда возвращает true

public ActionResult Index() 
{ 
    return View(); 
} 

public JsonResult Checkusername(string name) 
{ 
    bool UserNameinUse = true; 
    var exist =db.Employees.Where(x => x.Name.StartsWith(name)).FirstOrDefault(); 
    if (exist == null) 
    { 
     UserNameinUse = false; 
    } 
    return Json(UserNameinUse); 
} 
$(document).ready(function() { 
    $('#txtUserName').keyup(function() { 
     var divElement = $('#divOutput'); 
     var userName = $(this).val(); 
     if (userName.length >= 3) { 
      var url = '/Employee/CheckUserName/'; 
      $.ajax({ 
       url: url, 
       type: 'post', 
       dataType: 'json', 
       data: {name: userName }, 
       success: function (data) { 
        if (data.UserNameinUse =="false") { 
         divElement.text(userName + 'already Exist Please try with other one!'); 
         divElement.css('color', 'red'); 
        } 
        else { 
         divElement.text(userName + ' is available you can use this'); 
         divElement.css('color', 'green'); 
        } 
       }, 
       err: function (error) { 
        alert(error); 
       } 
      }); 
     } 
     else if (userName.length == 0) { 
      divElement.text(''); 
     } 
    }); 
}); 
+2

Привет, можете ли вы поместить код в вопрос как текст? Мне легче помочь вам таким образом. – Stefan

+0

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

+1

Показать свой код контроллера! и вместо прикрепления изображения вам следует попробовать добавить соответствующий код. –

ответ

0

Ваш контроллер возвращает одно булево значение. Ваш JS-код ожидает объект, возвращенный с помощью логического свойства, называемого UserNameinUse. Вы либо должны изменить свои C# код для возврата этого объекта:

return Json(new { UserNameinUse = UserNameinUse }); 

Или изменить JS для работы с одним значением возвращается, путем удаления dataType: 'json' и изменений if условия:

if (data == 'True') { 

Быть, безусловно, лучше.

+0

Поблагодарить u very Much.its сейчас работает как ожидалось –

+0

Рад помочь. Не забудьте принять и/или отложить ответ. –

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