Rhino Commons UnitOfWork 和 ASP.NET MVC Controller 似乎正在缓存参数

发布于 2024-07-29 09:00:30 字数 685 浏览 9 评论 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 时是否做错了什么,或者可能是其他地方的问题?

I am using Rhino Commons UnitOfWork in my controller methods. The first request retrieves the data and displays it correctly. My problem is when I change the parameters in the URL they are not passed to the controller. The values from the previous request are used.

My controller method is listed below:

    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);
    }

The Global.asax.cs inherits from UnitOfWorkApplication

The initial request to ~/meetings/2009 returns all meetings for the year 2009.
The next request to ~/meetings/2007 returns all meetings for the year 2009.

This is occuring while debugging in Visual Studio. I have not had a chance to move to IIS to see if the same problem occurs.

Am I doing something wrong in my use of UnitOfWork, or could it be a problem somewhere else?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

回眸一笑 2024-08-05 09:00:31

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

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

My guess is that the whole UnitOfWork thing is a red herring... The controller being passed values from previous requests sounds like the same instance of the controller is being re-used for multiple requests. The ASP.NET MVC framework works under the assumption that each request is handled by a fresh instance of the controller.

So, with that in mind, how are you constructing your controllers? For example if you're using a IoC framework like Spring.NET make sure your controllers are not singletons.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文