Skip to main content
 首页 » 编程设计

c#之Ajax 功能似乎不起作用

2024年01月25日37bjzhanghao

我正在开发网球俱乐部管理的在线应用程序...(MVC 3, Entity Framework 代码优先,...)

我有一个界面,允许用户查询可用的网球场:

在我的“AvailableCourtController”中,我有一个返回网球场的函数:

 [HttpPost] 
 public JsonResult GetTennisCourt(DateTime date) 
    { 
        var reservations = db.Reservations.Include(c => c.Customer); 
 
        foreach (var reservation in reservations) 
        { 
 
            //Verify that a court is available or not 
            if (reservation.Date ==date) 
            { 
                if (date.Hour > reservation.FinishTime.Hour || date.Hour < reservation.StartTime.Hour) 
                { 
                    var id = reservation.TennisCourtID; 
 
                    TennisCourt tennisCourt = (TennisCourt) db.TennisCourts.Where(t => t.ID == id); 
                    tennisCourt.Available = true; 
                    db.Entry(tennisCourt).State = EntityState.Modified; 
                    db.SaveChanges(); 
                } 
                else 
                { 
                    var id = reservation.TennisCourtID; 
                    TennisCourt tennisCourt = (TennisCourt) db.TennisCourts.Where(s => s.ID == id); 
                    tennisCourt.Available = false; 
                    db.Entry(tennisCourt).State = EntityState.Modified; 
                    db.SaveChanges(); 
                    break; 
                } 
            } 
        } 
 
        var courts = from c in db.TennisCourts 
                     select c; 
        courts = courts.OrderBy(c => c.ID); 
 
        return Json(courts, JsonRequestBehavior.AllowGet ); 
    }  

因此,如果网球场繁忙或空闲,我想更改我的标签的颜色... 为此,我使用“Ajax”:

“查看” (我尝试制作的内容)

<input id="datePicker" type= "text" onchange="loadCourts"/> 
<script type="text/javascript"> 
$('#datePicker').datetimepicker(); 
</script>            
 
<script type="text/javascript"> 
function loadCourts() { 
var myDate = $('#datePicker').value(); 
 
$.ajax({ 
    url: ("/AvailableCourt/GetTennisCourt?date=myDate "), 
    success: function (data) { 
        alert('test'); 
        //change label's color                                     
    } 
}); 
} 
</script> 

我从来没有收到“测试”消息...所以我的 Ajax 函数或我的 Controller 方法有问题...我的目标是获得网球场,检查它们是否空闲并进行更改忙碌时为红色,空闲时为绿色...

你能帮我找出我做错了什么吗? 抱歉 :( 但我是 Ajax 的初学者......

请您参考如下方法:

此行未在查询字符串中传递日期:

url: ("/AvailableCourt/GetTennisCourt?date=myDate "), 

应该是:

url: ("/AvailableCourt/GetTennisCourt?date=" + myDate), 

编辑:您也没有正确获取值:

var myDate = $('#datePicker').value(); 

应该是:

var myDate = $('#datePicker').val();