Jaki jest najlepszy sposób w tym przypadku na popbranie danych z EF db przy użyciu JS?

0

Pracuję nad projektem ASP.NET MVC Core2 i mam model który zawiera kilka właściwości:

public class SchoolEvents
        {
            public long ID { get; set; }
            [Required]
            [StringLength(40, ErrorMessage = "Max 40 characters")]
            public string Title { get; set; }
            [Required]
            public string Description { get; set; }
            [Required]
            public DateTime WhenHappens { get; set; }
        }

Z wyświetleniem danych przez Razor View nie mam problemu, ale wykorzystuję plugin kalendarza, który jest napisany w JS i wyświetla wydarzenia z bazy nań. Pobiera on dane w formacie:

`{ title: 'EventTitle', description: 'Few words about the event', datetime: new Date(2018, 8, 14, 16) }`

Wydaje się być oczywistością, że wykorzystam w skrypcie pętlę for, iterującą po obiektach w bazie. Ale jako że wciąż jestem noobem w JS, jedyny sposób jaki znam na wykonanie tego to:

-utworzenie pliku JSON przez kontroler:

[Route("events")]
             [ResponseCache(Location = ResponseCacheLocation.None, NoStore = true)]
             public ActionResult Comments()
             {
                 var _events= _context.Events.OrderBy(c => c.ProductID).ToList(); //tak, wiem, powinienem użyć repo najlepiej
                 return Json(_events);
            }

-w pliku JS wykorzystam funkcję loadEventsFromServer() która wykorzysta XMLHttpRequest lub Fetch i będzie parsować wyniki (nie wiem jeszcze jak wykonam parsowanie, będę wdzięczny za sugestie),

I tyle. Jeśli macie jakieś inne pomysły jak się do tego zabrać, piszcie śmiało :) Z góry dziękuję za pomocne posty.

0

Ok, wstępnie udało mi się rozwiązać problem tworząc MVC Component i umieszczając w nim kod JS mieszany z Razor.

events: [
                @foreach (var item in Model)
                {
                    <text>
                    { title: '@item.Title', description: '@item.Description', datetime: new Date('@item.WhenHappens.Year', @item.WhenHappens.Month-1, '@item.WhenHappens.Day', '@item.WhenHappens.Hour')},
                    </text>
                }
                ]

Ciekaw jestem jak to najlepiej rozwiązać czystym JS?

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