C# 参数字典包含参数(ASP.NET)的空条目

C# 参数字典包含参数(ASP.NET)的空条目,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,我有一个方法可以根据Aajax请求将数据添加到数据库中 下面是后端的代码 public ActionResult AddingInternalAppointment(string Start, string End, string Title, DateTime Date,int id) { using (var ctx = new ApplicationDbContext()) { Appointment appoint

我有一个方法可以根据Aajax请求将数据添加到数据库中

下面是后端的代码

   public ActionResult AddingInternalAppointment(string Start, string End, string Title, DateTime Date,int id)
    {

        using (var ctx = new ApplicationDbContext())
        {

            Appointment appointmentInt = new Appointment()
            {
                Start_appointment = Start,
                End_appointment = End,
                Title = Title,
                Type_of_appointment = "Internal",
                Date = Date
            };
            ctx.Appointments.Add(appointmentInt);
            ctx.SaveChanges();
            return Json(new {Result = "Success", Message = "Saved Successfully"});
        }
    }
这里是前端的AJAX请求:

function addAppointmentInternal() {
    var idofdoctor = moment($('#startAppointment').val()).toISOString();
    alert(idofdoctor);
    $.ajax({
        type: 'Post',
        dataType: 'Json',
        data: {
            Start: $('#startAppointment').val(),
            End: $('#endAppointment').val(),
            Title: $('#title').val(),
            Date: moment($('#startAppointment').val()).toISOString()
        },
        url: '@Url.Action("AddingInternalAppointment","Calendar")',
        success: function (da) {
            if (da.Result === "Success") {
                $('#calendar').fullCalendar('refetchEvents');
                $("#myModal2").modal();
            } else {
                alert('Error' + da.Message);
            }
        },
        error: function(da) {
            alert('Error');
        }
    });
}
当我调用这个函数时,它会向我显示这个错误,但我有日期值

我怎样才能解决这个问题


尝试将参数名称
Date
更改为其他内容(如
appointmentDate
)。您需要在ajax调用中进行同样的更改。

一些事情

为动作创建一个模型

public class AppointmentOptions {
    public string Start { get; set;} 
    public string End { get; set;} 
    public string Title { get; set;} 
    public DateTime Date { get; set;} 
    public int Id { get; set;} 
}
相应地更新操作

[HttpPost]
public ActionResult AddingInternalAppointment([FromBody]AppointmentOptions model) {
    if(ModelState.IsValid) {
        string Start = model.Start;
        string End = model.End;
        //...
    //...code removed for brevity
}
接下来是客户端更新ajax调用

function addAppointmentInternal() {
    var idofdoctor = moment($('#startAppointment').val()).toISOString();
    var model = {
            Start: $('#startAppointment').val(),
            End: $('#endAppointment').val(),
            Title: $('#title').val(),
            Date: moment($('#startAppointment').val()).toISOString()
        };
    alert(idofdoctor);
    $.ajax({
        type: 'Post',
        dataType: 'Json',
        data: JSON.stringify(model), //<-- NOTE
        url: '@Url.Action("AddingInternalAppointment","Calendar")',
        success: function (da) {
            if (da.Result === "Success") {
                $('#calendar').fullCalendar('refetchEvents');
                $("#myModal2").modal();
            } else {
                alert('Error' + da.Message);
            }
        },
        error: function(da) {
            alert('Error');
        }
    });
}
函数addAppointmentInternal(){
var idofdoctor=力矩($('#startappointing').val()).toISOString();
var模型={
开始:$('#startappointing').val(),
结束:$('#endAppointment').val(),
标题:$('#Title').val(),
日期:矩($('#startappointing').val()).toISOString()
};
警报(idofdoctor);
$.ajax({
键入:“Post”,
数据类型:“Json”,

data:JSON.stringify(model),//尝试将参数名称Date更改为其他名称(类似于appointmentDate),它似乎是关键字,因此不能将其用作参数。您需要在ajax调用中更改它。
$('#startAppointment').val()的值是多少
调用ajax时?错误不在此值内@WNDRRY您是对的,谢谢's@DSRI把它作为一个答案贴出来,你可以接受它,如果它有效的话。这是胡说八道。
Date
不是一个保留关键字。这到底是怎么被投票和接受的。仅供参考,