0

我在我的控制器方法中使用 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 时做错了什么,还是在其他地方有问题?

4

1 回答 1

1

我的猜测是,整个 UnitOfWork 事情是一个红鲱鱼......从以前的请求传递值的控制器听起来像是控制器的同一个实例被重新用于多个请求。ASP.NET MVC 框架在假设每个请求都由控制器的新实例处理的假设下工作。

那么,考虑到这一点,您是如何构建控制器的?例如,如果您使用像 Spring.NET 这样的 IoC 框架,请确保您的控制器不是单例的。

于 2009-07-24T02:53:45.357 回答