我在控制器方法中使用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时做错了什么,或者可能是其他地方的问题?
发布于 2009-07-24 02:53:45
我猜整个UnitOfWork的事情都是在转移视线。从以前的请求中传递值的控制器听起来像是为多个请求重用了控制器的同一实例。ASP.NET MVC框架在假设每个请求都由控制器的新实例处理的前提下工作。
那么,考虑到这一点,你如何构建你的控制器呢?例如,如果您使用像Spring.NET这样的IoC框架,请确保您的控制器是,而不是单例。
https://stackoverflow.com/questions/1175353
复制相似问题