我目前正在尝试在我的项目中实现 DayPilot Lite MVC。我已经设置了我的事件并且它们是可点击的(使用 Debug 语句测试)。但是,我要做的是使用从我单击的事件的 id 构建的 ViewModel 处理单击并加载新视图。
public ActionResult Booking()
{
ApplicationDbContext db = new ApplicationDbContext();
int id = Dpc.eventID;
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Lesson lesson = db.Lessons.Find(id);
if (lesson == null)
{
return HttpNotFound();
}
return View(lesson);
}
class Dpc : DayPilotCalendar
{
public int eventID;
protected override void OnInit(InitArgs e)
{
ApplicationDbContext db = new ApplicationDbContext();
Events = from ev in db.Lessons select ev;
DataIdField = "ClassID";
DataTextField = "ClassLevel";
DataStartField = "ClassStartDate";
DataEndField = "ClassEndDate";
Update();
}
protected override void OnEventClick(EventClickArgs e)
{
//Test to check the method was firing
Debug.WriteLine("Hey I clicked you");
//Parse the event ID for processing
eventID = int.Parse(e.Id);
//Redirect to the booking page
Redirect("Schedule/Booking");
}
}
当我尝试编写 Booking 方法时,它告诉我 Dpc.eventID 需要一个对象引用。我尝试将类和变量公开,但错误仍然存在。我不能公开 eventClick,因为我不能覆盖原来的。我正在使用重定向,因为如果我尝试任何其他链接,它会因同样的原因而失败。我猜这是因为它是一个非继承的子类,但是如果它们具有公共范围,我是否仍然不能访问它的成员属性?