我在我的控制器方法中使用Rhino Commons UnitOfWork。第一个请求检索数据并正确显示。我的问题是当我更改URL中的参数时,它们不会传递给控制器。使用上一个请求的值。
我的控制器方法如下:
public ActionResult List(int year, int? month, int? day)
{
IList<Meeting> meetings;
using (UnitOfWork.Start()) {
meetings = _meetingRepository.GetByDate(year, month, day);
}
return View("List", meetings);
}
Global.asax.cs继承自UnitOfWorkApplication
对〜/ meetings / 2009的初始请求将返回2009年的所有会议。 对〜/ meetings / 2007的下一次请求将返回2009年的所有会议。
在Visual Studio中进行调试时出现这种情况。我没有机会移动到IIS以查看是否发生了同样的问题。
我在使用UnitOfWork时做错了什么,或者在其他地方出现问题?
答案 0 :(得分:1)
我的猜测是整个UnitOfWork是一个红色的鲱鱼......控制器从先前的请求传递的值听起来像控制器的同一个实例被重用于多个请求。 ASP.NET MVC框架的工作原理是每个请求都由一个新的控制器实例处理。
所以,考虑到这一点,你是如何构建控制器的?例如,如果您使用的是像Spring.NET这样的IoC框架,请确保您的控制器不是单例。