我正在开发网球俱乐部管理的在线应用程序...(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();
