首页 > 解决方案 > 我找不到在 mssql 上更新日历事件的方法。发布到我的剃须刀页面不起作用(400 错误)

问题描述

使用日历中的自定义按钮进行更新的代码:

 myCustomButton: {
                text: 'Save Events',
                        click: () => {
                            var allevents = calendar.getEvents();             
                            $.ajax({
                                type: 'POST',
                                contentType: 'application/json',
                                dataType: 'json',
                                data: allevents,
                                url: '/Wishes/Individual/Update',
                                headers: {
                                    'RequestVerificationToken': '@antiforgery.GetAndStoreTokens(HttpContext).RequestToken'
                                },
                                success: function (response) {
                                    alert: ('success');
                                },
                                failure: function (response) {
                                    alert: ('failure');
                                }
                            });                         

                        }
                    },

标签: asp.net-core

解决方案


根据您的描述和代码,您似乎希望通过发出 AJAX 发布请求将 FullCalendar 中的所有事件发布到您的 Razor 页面处理程序,然后在数据库上保存/更新事件。

要达到要求,您可以参考以下示例。

在 JavaScript 客户端上

customButtons: {
    myCustomButton: {
        text: 'Save Events',
        click: function () {
            var allevents = calendar.getEvents();
            var events = [];

            $.each(allevents, function (index, event) {
                //console.log(event);

                // include only expected data (such as title, start and end etc) in json object `newevent`
                // instead of all information of calendar event

                var newevent = { "title": event.title, "start": event.start, "end": event.end };
                events.push(newevent);
            });

            $.ajax({
                    type: 'POST',
                    contentType: 'application/json',
                    dataType: 'json',
                    data: JSON.stringify(events),
                    url: '/Wishes/Individual/Update',
                    headers: {
                        'RequestVerificationToken': '@antiforgery.GetAndStoreTokens(HttpContext).RequestToken'
                    },
                    success: function (response) {
                        alert: ('success');
                    },
                    failure: function (response) {
                        alert: ('failure');
                    }
                });

            alert('clicked the custom button!');
        }
    }
},

Razor 页面处理程序方法

public IActionResult OnPostUpdate([FromBody]List<Event> events)
{
    //code logic here

    return Content("ok");
}

自定义事件类

public class Event
{
    public string title { get; set; }
    public string start { get; set; }
    public string end { get; set; }

    // defind other properties
    // such as groupId, url etc based on your requirements
}

测试结果

在此处输入图像描述


推荐阅读