Asp.net mvc Rhino Commons UnitOfWork和ASP.NET MVC控制器似乎正在缓存参数
我在控制器方法中使用Rhino Commons UnitOfWork。第一个请求检索数据并正确显示。我的问题是,当我更改URL中的参数时,这些参数不会传递给控制器。使用上一个请求中的值 我的控制器方法如下所示:Asp.net mvc Rhino Commons UnitOfWork和ASP.NET MVC控制器似乎正在缓存参数,asp.net-mvc,rhino-commons,Asp.net Mvc,Rhino Commons,我在控制器方法中使用Rhino Commons UnitOfWork。第一个请求检索数据并正确显示。我的问题是,当我更改URL中的参数时,这些参数不会传递给控制器。使用上一个请求中的值 我的控制器方法如下所示: public ActionResult List(int year, int? month, int? day) { IList<Meeting> meetings; using (UnitOfWork.Start()) {
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);
}
公共行动结果列表(整年、整月、整日)
{
IList会议;
使用(UnitOfWork.Start()){
meetings=_meetingRepository.GetByDate(年、月、日);
}
返回视图(“列表”,会议);
}
Global.asax.cs继承自UnitOfWorkApplication
对~/meetings/2009的初始请求返回2009年的所有会议。
对~/meetings/2007的下一个请求返回2009年的所有会议
这是在Visual Studio中调试时发生的。我没有机会移动到IIS以查看是否发生相同的问题
我在使用UnitOfWork时是做错了什么,还是在其他地方出了问题?我猜整个UnitOfWork的事情都是在转移视线。。。从以前的请求中传递值的控制器听起来像是控制器的同一个实例被重新用于多个请求。ASP.NET MVC框架的工作假设是每个请求都由控制器的新实例处理
因此,考虑到这一点,您如何构建控制器?例如,如果您使用的是像Spring.NET这样的IoC框架,请确保您的控制器是而不是单例。我在Castle Windsor上使用了一些示例代码。修改方法以创建控制器修复了它。谢谢你给我指明了正确的方向。