我目前正在尝试在我的项目上实施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需要一个对象引用。我已经尝试将类和变量设为public,但错误仍然存在。我无法将事件点击公开,因为我无法覆盖原始事件。我正在使用Redirect,因为如果我尝试任何其他链接,它会因同样的原因而失败。我猜它是因为它是一个非继承的子类,但如果它们有一个公共范围,我是否仍然无法访问其成员属性?