将razorpages与实体框架和完整日历一起显示不显示事件

发布于 2025-02-06 23:06:18 字数 11300 浏览 1 评论 0原文

我在前端的实体框架上有完整的日历工作问题。数据是当前的,但在网页上不可见。 网页只需显示Canladar即可。 我指的是另一个主题,这没有解决我的问题。

使用razorpages实体框架与完整日历一起使用

后端代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.EntityFrameworkCore;
using RotaryDeuxPlateaux.Model;
using Microsoft.Extensions.Configuration;
using System.Web.Mvc;
using Microsoft.AspNetCore.Http;

namespace MyApp.Pages
{
    public class calendrierModel : PageModel
    {
        private readonly db_Context _db;


        public IList<TblEvenement> Events { get; set; }
        private readonly IConfiguration Configuration;


        [BindProperty]
        public string Title { get; set; }

        [BindProperty]
        public string Doc { get; set; }
        [BindProperty]
        public string Pat { get; set; }
        [BindProperty]
        public string dec { get; set; }
        [BindProperty]
        public DateTime date { get; set; }

        //private Schedule schedule;
       [BindProperty]
        public JsonResult result { get; set; }


        public string today = DateTime.Today.ToString();

        public void OnGet()
        {

            result = (JsonResult)OnGetEvents();
            
            ViewData["CalendarEents"] = result;
        }

        public calendrierModel(db_Context context, IConfiguration configuration)
        {
            // _logger = logger;
            _db = context;
            Configuration = configuration;
        }



        public class eventShow
        {
            public int id { get; set; }
            public string title { get; set; }
            public string description { get; set; }
            public string start { get; set; }
            public string end { get; set; }


        }





        public IActionResult OnGetEvents()
        {
            List<eventShow> events = new List<eventShow>();
            eventShow show = new eventShow();
            try
            {
                //string x = HttpContext.Session.GetString("username");

                using (var context = new db_rotaryContext())
                {

                    var query = from st in _db.TblEvenement
                              //  where st.Id == 1 //|| st.DoctorEmail == x.Trim()
                                select st;



                    foreach (var item in query.ToList())
                    {

                        show.id = item.IdEvenement;
                        show.title = item.TitreEvenement;
                        show.description = item.Description;
                        show.start = item.DateDebutEvenement.Value.ToString("MM/dd/yyyy");
                        show.end = item.DateFinEvenement.Value.ToString("MM/dd/yyyy");


                        events.Add(show);
                    }


                    return new JsonResult(events);
                }
            }
            catch (Exception ex)
            {
                return null;
            }
        }


        //public async Task OnGetAsync(string sortOrder, string searchString, int? searchDay, int? searchMonth, int? searchYear, int? pageIndex)
        //{
        //    // using System;

        //    IQueryable<TblEvenement> MembresIQ = from s in _db.TblEvenement


        //                                         select s;


        //    Events = await MembresIQ.AsNoTracking().ToListAsync();

        //}

    }
}

**页面布局的头**

<!DOCTYPE html>
<html lang="fr">
<head>
    <meta charset="utf-8" />
    @*<meta name="viewport" content="width=device-width, initial-scale=1.0" />*@
    <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate">
    <meta http-equiv="Pragma" content="no-cache">
    <meta http-equiv="Expires" content="0">

    <title>@ViewData["Title"] </title>
    <link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.min.css" />
    <link rel="stylesheet" href="~/css/site.css" />
    @*<link href="https://netdna.bootstrapcdn.com/font-awesome/4.0.1/css/font-awesome.css" rel="stylesheet">*@


    <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.13.0/css/all.css">


    <meta name="description" content="" />
    <meta name="author" content="" />
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
    <!-- Favicon-->
    <link rel="icon" type="image/x-icon" href="assets/favicon.ico" />
    <!-- Font Awesome icons (free version)-->
    <script src="https://use.fontawesome.com/releases/v6.1.0/js/all.js" crossorigin="anonymous"></script>
    <!-- Google fonts-->
    <link href="https://fonts.googleapis.com/css?family=Montserrat:400,700" rel="stylesheet" type="text/css" />
    <link href="https://fonts.googleapis.com/css?family=Roboto+Slab:400,100,300,700" rel="stylesheet" type="text/css" />

    <link href="//netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.css" rel="stylesheet" />

    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/main.min.css" integrity="sha256-lQnxfLYgySmY6nHM7LkVqcS2RdJvFUV2p6FHg04SZN4=" crossorigin="anonymous">
    <script src="https://cdn.jsdelivr.net/npm/[email protected]/main.min.js" integrity="sha256-RYuehXpnr248jInax6L9UXEegv6DvIRoN+lyxayiIFg=" crossorigin="anonymous"></script>

    <script>

        document.addEventListener('DOMContentLoaded', function () {
            var calendarEl = document.getElementById('calendar');

            var calendar = new FullCalendar.Calendar(calendarEl, {
                headerToolbar: {
                    left: 'prev,next today',
                    center: 'title',
                    right: 'dayGridMonth,timeGridWeek,timeGridDay'
                },

             schedulerLicenseKey: 'CC-Attribution-NonCommercial-NoDerivatives',
                initialDate: '2022-06-06',
                navLinks: true, // can click day/week names to navigate views
                selectable: true,
                selectMirror: true,
        eventColor: '#378000',

                select: function (arg) {
                    var title = prompt('Evènements:');

                    if (title) {
                        var tie = prompt('Time');
                    }

                    if (title) {
                        calendar.addEvent({
                            title: title,
                            start: arg.start,
                            Starttime: tie,
                            end: arg.end,
                            EndTime: arg.EndTime
                        })
                    }
                    calendar.unselect()
                },
                eventClick: function (arg) {
                    if (confirm('Voulez-vous supprimer ?')) {


                        arg.event.remove()
                    }
                },
                editable: true,
                dayMaxEvents: true, // allow "more" link when too many events
               // events: $.getJSON('~/Calendrier/OnGetEvents')
               // events: @ViewData["CalendarEents"];
                events:"/calender?handler=events"
                //"/calender?handler=events"

            });

            calendar.render();
        });



        //$(document).ready(function ()
        //{
        //    var events = [];
        //    $.ajax({
        //        type: 'GET',
        //        url: '/Calendrier',
        //        success: function (data) {

        //            $.each(data, function (i, v) {
        //                events.push({
        //                    title: v.TitreEvenement,
        //                    description: v.Description,
        //                    debut: moment(v.DateDebutEvenement),
        //                    fin: v.DateFinEvenement != null ? moment(v.DateFinEvenement) : null,
        //                    color: ThemeColor,
        //                    allDay: v.isFullDay
        //                });
        //            })

        //            GenerateCalendar(events);
        //        },
        //        error: function (error) {
        //            alert('failed');
        //        }
        //    })
        //})


        //function GenerateCalendar(events) {
        //    var calendarEl = document.getElementById('calendar');
        //    calendarEl.FullCalendar('destroy');
        //    var calendar = new FullCalendar.Calendar(calendarEl, {
        //        initialView: 'dayGridMonth',
        //        schedulerLicenseKey: 'CC-Attribution-NonCommercial-NoDerivatives',
        //        defaultDate: new Date,
        //        timeFormat: 'h(:mm)a',
        //        Headers: {
        //            left: 'prev,next toady',
        //            center: 'title',
        //            rigth: 'month,basicweek,basicDay,agenda'
        //        },
        //        eventLimit: true,
        //        eventColor: '#378000',
        //        events: events
        //    });
        //    calendar.render();
        //}


        //document.addEventListener('DOMContentLoaded', function () {
        //    var calendarEl = document.getElementById('calendar');
        //    calendarEl.FullCalendar('destroy');
        //    var calendar = new FullCalendar.Calendar(calendarEl, {
        //        initialView: 'dayGridMonth',
        //        schedulerLicenseKey: 'CC-Attribution-NonCommercial-NoDerivatives',
        //        defaultDate: new Date,
        //        timeFormat: 'h(:mm)a',
        //        Headers:{
        //            left: 'prev,next toady',
        //            center: 'title',
        //            rigth: 'month,basicweek,basicDay,agenda'
        //        },
        //        eventLimit: true,
        //        eventColor: '#378000',
        //        events: events
        //    });
        //    calendar.render();
        //});

    </script>
    <!-- Core theme CSS (includes Bootstrap)-->
    <link href="css/styles.css" rel="stylesheet" />

    <link href="css/RotaryStyles.css" rel="stylesheet" />


</head>
<body id="page-top">

页面

@{

 
    ViewData["Title"] = "Calendrier";

    ViewData["CalendarEents"] = Model.result;
}

<div class="container-fluid">

    <div class="page-section">
        <div class="container">

            <div class="row">
                <div id='calendar'>

                </div>
    
            </div>

        </div>

       

    </div>


</div>



I have a problem with full calendar work with Entity Framework in the front end. The data is current but isn't visible on web page.
The web page just show the canladar.
I have refer to another topic and that didn't solved my problem .

(Using razorpages entity framework to work with full calendar)

Backend Code

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.EntityFrameworkCore;
using RotaryDeuxPlateaux.Model;
using Microsoft.Extensions.Configuration;
using System.Web.Mvc;
using Microsoft.AspNetCore.Http;

namespace MyApp.Pages
{
    public class calendrierModel : PageModel
    {
        private readonly db_Context _db;


        public IList<TblEvenement> Events { get; set; }
        private readonly IConfiguration Configuration;


        [BindProperty]
        public string Title { get; set; }

        [BindProperty]
        public string Doc { get; set; }
        [BindProperty]
        public string Pat { get; set; }
        [BindProperty]
        public string dec { get; set; }
        [BindProperty]
        public DateTime date { get; set; }

        //private Schedule schedule;
       [BindProperty]
        public JsonResult result { get; set; }


        public string today = DateTime.Today.ToString();

        public void OnGet()
        {

            result = (JsonResult)OnGetEvents();
            
            ViewData["CalendarEents"] = result;
        }

        public calendrierModel(db_Context context, IConfiguration configuration)
        {
            // _logger = logger;
            _db = context;
            Configuration = configuration;
        }



        public class eventShow
        {
            public int id { get; set; }
            public string title { get; set; }
            public string description { get; set; }
            public string start { get; set; }
            public string end { get; set; }


        }





        public IActionResult OnGetEvents()
        {
            List<eventShow> events = new List<eventShow>();
            eventShow show = new eventShow();
            try
            {
                //string x = HttpContext.Session.GetString("username");

                using (var context = new db_rotaryContext())
                {

                    var query = from st in _db.TblEvenement
                              //  where st.Id == 1 //|| st.DoctorEmail == x.Trim()
                                select st;



                    foreach (var item in query.ToList())
                    {

                        show.id = item.IdEvenement;
                        show.title = item.TitreEvenement;
                        show.description = item.Description;
                        show.start = item.DateDebutEvenement.Value.ToString("MM/dd/yyyy");
                        show.end = item.DateFinEvenement.Value.ToString("MM/dd/yyyy");


                        events.Add(show);
                    }


                    return new JsonResult(events);
                }
            }
            catch (Exception ex)
            {
                return null;
            }
        }


        //public async Task OnGetAsync(string sortOrder, string searchString, int? searchDay, int? searchMonth, int? searchYear, int? pageIndex)
        //{
        //    // using System;

        //    IQueryable<TblEvenement> MembresIQ = from s in _db.TblEvenement


        //                                         select s;


        //    Events = await MembresIQ.AsNoTracking().ToListAsync();

        //}

    }
}

** HEAD OF THE PAGE LAYOUT**

<!DOCTYPE html>
<html lang="fr">
<head>
    <meta charset="utf-8" />
    @*<meta name="viewport" content="width=device-width, initial-scale=1.0" />*@
    <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate">
    <meta http-equiv="Pragma" content="no-cache">
    <meta http-equiv="Expires" content="0">

    <title>@ViewData["Title"] </title>
    <link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.min.css" />
    <link rel="stylesheet" href="~/css/site.css" />
    @*<link href="https://netdna.bootstrapcdn.com/font-awesome/4.0.1/css/font-awesome.css" rel="stylesheet">*@


    <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.13.0/css/all.css">


    <meta name="description" content="" />
    <meta name="author" content="" />
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
    <!-- Favicon-->
    <link rel="icon" type="image/x-icon" href="assets/favicon.ico" />
    <!-- Font Awesome icons (free version)-->
    <script src="https://use.fontawesome.com/releases/v6.1.0/js/all.js" crossorigin="anonymous"></script>
    <!-- Google fonts-->
    <link href="https://fonts.googleapis.com/css?family=Montserrat:400,700" rel="stylesheet" type="text/css" />
    <link href="https://fonts.googleapis.com/css?family=Roboto+Slab:400,100,300,700" rel="stylesheet" type="text/css" />

    <link href="//netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.css" rel="stylesheet" />

    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/main.min.css" integrity="sha256-lQnxfLYgySmY6nHM7LkVqcS2RdJvFUV2p6FHg04SZN4=" crossorigin="anonymous">
    <script src="https://cdn.jsdelivr.net/npm/[email protected]/main.min.js" integrity="sha256-RYuehXpnr248jInax6L9UXEegv6DvIRoN+lyxayiIFg=" crossorigin="anonymous"></script>

    <script>

        document.addEventListener('DOMContentLoaded', function () {
            var calendarEl = document.getElementById('calendar');

            var calendar = new FullCalendar.Calendar(calendarEl, {
                headerToolbar: {
                    left: 'prev,next today',
                    center: 'title',
                    right: 'dayGridMonth,timeGridWeek,timeGridDay'
                },

             schedulerLicenseKey: 'CC-Attribution-NonCommercial-NoDerivatives',
                initialDate: '2022-06-06',
                navLinks: true, // can click day/week names to navigate views
                selectable: true,
                selectMirror: true,
        eventColor: '#378000',

                select: function (arg) {
                    var title = prompt('Evènements:');

                    if (title) {
                        var tie = prompt('Time');
                    }

                    if (title) {
                        calendar.addEvent({
                            title: title,
                            start: arg.start,
                            Starttime: tie,
                            end: arg.end,
                            EndTime: arg.EndTime
                        })
                    }
                    calendar.unselect()
                },
                eventClick: function (arg) {
                    if (confirm('Voulez-vous supprimer ?')) {


                        arg.event.remove()
                    }
                },
                editable: true,
                dayMaxEvents: true, // allow "more" link when too many events
               // events: $.getJSON('~/Calendrier/OnGetEvents')
               // events: @ViewData["CalendarEents"];
                events:"/calender?handler=events"
                //"/calender?handler=events"

            });

            calendar.render();
        });



        //$(document).ready(function ()
        //{
        //    var events = [];
        //    $.ajax({
        //        type: 'GET',
        //        url: '/Calendrier',
        //        success: function (data) {

        //            $.each(data, function (i, v) {
        //                events.push({
        //                    title: v.TitreEvenement,
        //                    description: v.Description,
        //                    debut: moment(v.DateDebutEvenement),
        //                    fin: v.DateFinEvenement != null ? moment(v.DateFinEvenement) : null,
        //                    color: ThemeColor,
        //                    allDay: v.isFullDay
        //                });
        //            })

        //            GenerateCalendar(events);
        //        },
        //        error: function (error) {
        //            alert('failed');
        //        }
        //    })
        //})


        //function GenerateCalendar(events) {
        //    var calendarEl = document.getElementById('calendar');
        //    calendarEl.FullCalendar('destroy');
        //    var calendar = new FullCalendar.Calendar(calendarEl, {
        //        initialView: 'dayGridMonth',
        //        schedulerLicenseKey: 'CC-Attribution-NonCommercial-NoDerivatives',
        //        defaultDate: new Date,
        //        timeFormat: 'h(:mm)a',
        //        Headers: {
        //            left: 'prev,next toady',
        //            center: 'title',
        //            rigth: 'month,basicweek,basicDay,agenda'
        //        },
        //        eventLimit: true,
        //        eventColor: '#378000',
        //        events: events
        //    });
        //    calendar.render();
        //}


        //document.addEventListener('DOMContentLoaded', function () {
        //    var calendarEl = document.getElementById('calendar');
        //    calendarEl.FullCalendar('destroy');
        //    var calendar = new FullCalendar.Calendar(calendarEl, {
        //        initialView: 'dayGridMonth',
        //        schedulerLicenseKey: 'CC-Attribution-NonCommercial-NoDerivatives',
        //        defaultDate: new Date,
        //        timeFormat: 'h(:mm)a',
        //        Headers:{
        //            left: 'prev,next toady',
        //            center: 'title',
        //            rigth: 'month,basicweek,basicDay,agenda'
        //        },
        //        eventLimit: true,
        //        eventColor: '#378000',
        //        events: events
        //    });
        //    calendar.render();
        //});

    </script>
    <!-- Core theme CSS (includes Bootstrap)-->
    <link href="css/styles.css" rel="stylesheet" />

    <link href="css/RotaryStyles.css" rel="stylesheet" />


</head>
<body id="page-top">

THE PAGE

@{

 
    ViewData["Title"] = "Calendrier";

    ViewData["CalendarEents"] = Model.result;
}

<div class="container-fluid">

    <div class="page-section">
        <div class="container">

            <div class="row">
                <div id='calendar'>

                </div>
    
            </div>

        </div>

       

    </div>


</div>



如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文