Как предотвратить кэширование ASP.NET MVC неверных данных в моем представлении? - PullRequest
1 голос
/ 23 января 2010

У меня ситуация, в которой я не могу найти никакой помощи. Я просмотрел много вопросов здесь, но не могу найти никого, кто задавал (или отвечал) мой конкретный вопрос. Вот оно:

Предположим, у меня есть 2 категории:

  • Бумага (id: 1)
  • Пластик (id: 2)

Пользователь нажимает Paper, меняет имя на Plastic и нажимает «Отправить».

Внутри моего контроллера я обнаружил, что уже есть категория с именем Plastic, поэтому я повторно отправляю страницу пользователю с дружеским сообщением.

Проблема возникает, когда пользователь решает , а не изменить значение, и вместо этого перейти от страницы. Они делают некоторые другие вещи и затем нажимают Paper снова, чтобы изменить его имя. Только на этот раз они действительно видят имя Plastic в текстовом поле !?

Эта проблема возникает на всех моих контроллерах, когда я отклоняю неверные данные формы. Как мне решить эту проблему?

1 Ответ

1 голос
/ 26 января 2010

Я просто хотел ответить на этот вопрос сам, чтобы указать, что на мой вопрос ответил queen3 в комментарии. Я обнаружил, что значение возвращается из моего LinqToSql с недопустимым значением.

Я решил эту проблему путем регистрации модуля Castle Windsor PerWebRequestLifestyleModule http следующим образом:

<httpModule>
 <add name="PerRequestLifestyle" type="Castle.MicroKernel.Lifestyle.PerWebRequestLifestyleModule, Castle.MicroKernel" />
 ...
</httpModule>

Затем я подошел к каждому компоненту и установил стиль жизни на PerWebRequest примерно так:

<component 
    id="..."
    service="..."
    type="..."
    lifestyle="PerWebRequest">

    ...

  </component>

Спасибо queen3 !

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...