如何阻止ASP.NET MVC在View中缓存无效数据?

时间:2010-01-23 07:30:24

标签: asp.net-mvc caching validation

我的情况似乎无法找到任何帮助。我在这里查看了很多问题,但似乎找不到任何已经提出(或回答)我的具体问题的人。这是:

假设我有两个类别:

  • 纸(id:1)
  • 塑料(id:2)

用户点击Paper,将名称更改为Plastic,然后点击“提交”。

在我的控制器中,我发现已经存在一个名为Plastic的类别,因此我将页面重新发送给用户并发送了友好的消息。

当用户决定 更改值,而是离开页面时,会出现问题。他们做了其他一些事情,然后再次点击Paper来更改它的名字。只有这次他们才真正在文本框中看到名字Plastic

当我拒绝无效的表单数据时,我的所有控制器都出现此问题。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

我只是想自己回答这个问题,以表明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