Wyświetlenie danych pobranych z kontrolera w formacie JSON

0

Cześć, nie mam pojęcia co robię źle że nie jestem w stanie wyświetlić w widoku mojej aplikacji pobranych danych. Testuje to na alercie, ale albo wyświetla się object albo nic. Proszę o jakąś podpowiedź.

public JsonResult TakeBookedEvents()
        {
            List<VisitDetails> details = dd.GetAll;

            IEnumerable<VisitDetails> deta = details.AsEnumerable();
            var data = deta.Select(s => new
                {
                    LoginUser = s.LoginUser
                });
            
            return Json(data, JsonRequestBehavior.AllowGet);
        }
 
<script id="jsbin-javascript">

        var test = { url: 'BookVisit/TakeBookedEvents' };
        (...)
 
        var dane = test[0];
        alert(dane.LoginUser)
0

A jakiego typu jest LoginUser?

0

A deserializujesz jakoś tego JSONa po stronie JS?

0

Nic więcej z tym nie robię poza kodem który wstawiłem. Nawet nie mam w opcjach podpowiedzi LoginUser kiedy piszę dane.LoginUser, ale to chyba jest normalne?

Jak mam tak to wyskakuje alert i pisze undefined

var dane = test[0];
alert(dane) 

Natomiast jak mam tak to nawet się alert nie pojawia

 
var dane = test[0];
alert(dane.LoginUser)

A jak zrobię tak to w alercie wyświetla się [object Object]

 alert(test)
0

A w debugerze w przeglądarce jaką wartość ma zmienna dane?

0

Dobra udało się haha. Wygląda to dokładnie tak samo jak w poście powyżej

var dane = test[0]; 

output :undefined

 
var dane = test[0];
var d = dane.LoginUser

output d: undefined

 
var dane = test

output: Object

Mnie to się wydaje że po prostu nie pobieram niczego z kontrolera, że to działa niepoprawnie
var test = { url: 'BookVisit/TakeBookedEvents' };
Nawet jak zmienie ten adres na taki który nie istnieje to mam taki sam output jak w poprawnym..

0

AFAIR zmienne do JSON są serializowane zgodnie z notacją JS czyli zmieniane są na zaczynające się z małej litery, a nie wielkiej. Przynajmniej w Web Api 2 + angular tak to wyglądało. Sprawdź to sobie, mogę się mylić.

Pokaż cały kod JS.

0

Nie ma co chyba pokazywać, pracuję z pluginem fullCalendar i tam potrzebuje te dane do filtrowania. Pousuwałem wszystko co zbędne żeby było lepiej widać. W ten sposób to testuje

<div class="container">
    <div id='calendar' style="width:100%"></div>
</div>

@section scripts{
<link href="~/Content/bootstrap.css" rel="stylesheet" />
<script src="~/Scripts/moment.js"></script>
<script src="~/Scripts/moment-timezone.js"></script>
<link href="~/Content/fullcalendar.css" rel="stylesheet" />
<script src="~/Scripts/fullcalendar.js"></script>

    <script id="jsbin-javascript">

        var test = { url: 'BookVisit/TakeBookedEvents' };


        var eventRender = function (event, element) {
            $(element).html(moment(event.start).format('h:mm'));

                var dane = test[0];
                alert(dane.LoginUser);
                return element;
                
            }
        };


      
        $(document).ready(function () {

            $('#calendar').fullCalendar({
                header: {
                    left: 'prev,next today',
                    center: 'title',
                    right: 'agendaWeek,agendaDay'
                },
                defaultView: 'agendaWeek',
                editable: false,
                allDaySlot: false,
                selectable: true,
                events: myEvents,
                eventRender: eventRender,
                eventClick: eventClick,

            });
        });
    </script>
}

Co do wielkości liter to nic się nie zmieniło, ale rzeczywiście chyba trzeba używać małych liter na początku.

2

A w ogóle wywołuje CI akcję kontrolera? Np. zapinałeś sie debuggerem i sprawdzałeś? Albo patrzyłeś w logi? Ja nie wiele rzeczy w JS pisałem, ale nie wydaje mi się, żeby
var test = { url: 'BookVisit/TakeBookedEvents' }; miało Ci te dane pobrać.
Nie chcesz zrobić na przykład tego tak:
http://www.w3schools.com/jquery/ajax_get.asp
?

0

W debuggerze nie zatrzymuje mi się w tej akcji. Czyli lipa. Upieram się tak przy tym zapisie bo już coś podobnego robiłem i udawało mi się pobierać dane w ten sposób, zresztą znalazłem go gdzieś na necie, a teraz nie działa.
Spróbuje zrobić to sposobem z linku.

1 użytkowników online, w tym zalogowanych: 0, gości: 1