2015-03-07 3 views
0

Im пытается отобразить данные, полученные из моего контроллера, и я могу видеть данные на консоли браузера, но он не будет отображаться в html. Вот мой код:Как отображать данные из метода Ajax Get?

function GetUserInfo() { 
     var username = readCookie("Cookie"); 
     $.ajax({ 
      url: '/api/getInfo/' + username, 
      type: 'GET', 
      data: { UserName: 'UserName', FirstName: 'FirstName', LastName: 'LastName' }, 
      dataType: 'json', 
      success: function(Results) { 
       if (Results.length > 0) { 

        $('#username').text(Results.UserName); 
$('#firstname').text(Results.UserName); 
$('#lastname').text(Results.UserName); 

       } 
       else { 
        alert("No data."); 
       } 
      } 

     }).fail(
      function (xhr, textStatus, err) { 
       alert(err); 
      } 
     ); 
    } 

Это данные мне нужно отобразить:

[ 
    { 
     "Id": 0, 
     "UserName": "demouser", 
     "FirstName": "Demo", 
     "LastName": "User", 
     "EmailAddress": "[email protected]", 
     "PhoneNumber": "xxx-xxx-xxxx" 
    } 
] 

Это код на стороне сервера я использую, чтобы отобразить мои данные:

public List<Models.User> GetUserInfo(String username) 
{ 
    List<Models.User> UserInfo = null; 
    var Info = from m in db.MstUsers 
       where m.UserName == username 
       select new Models.User 
       { 
        UserName = m.UserName, 
        FirstName = m.FirstName, 
        LastName = m.LastName, 
        EmailAddress = m.EmailAddress, 
        PhoneNumber = m.PhoneNumber 
       }; 

    UserInfo = Info.ToList(); 
    return UserInfo; 
} 

Как Я храню переменные в параметрах ? Каков правильный способ размещения данных из массива? Я новичок в JQuery. Может кто-нибудь сказать мне, что не так с моим кодом, и помочь мне понять, как правильно хранить данные?

+0

Не могли бы вы показать пример данных? Либо это объект, в этом случае он не будет иметь свойство '.length', или это массив, в этом случае он не будет иметь свойство .UserName'. – JJJ

+0

Можете вы добавить код на стороне сервера, пожалуйста? Помогло бы много узнать, какие данные это – BillBokeey

+0

Да, это массив, поэтому вам нужно будет указать, к какому элементу вы обращаетесь ('Results [0] .UserName' и т. Д.). – JJJ

ответ

0

As Results - это массив. Вы должны либо перебирать, либо показывать данные в DOM else, используя индекс Results[0] (если его первый элемент, измените индекс на основе объекта, который вы хотите показать), чтобы показать результаты.

В случае, если $("#username") является полем ввода, используйте вместо этого $("#username").va(Results[0].username).

success: function(Results) { 
       if (Results.length > 0) { 

        $('#username').text(Results[0].UserName); 
        $('#firstname').text(Results[0].UserName); 
        $('#lastname').text(Results[0].UserName); 

       } 
       else { 
        alert("No data."); 
       } 
      } 
+0

Спасибо! Это сработало! – germikee

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