servicestack字段有时会在用于编辑和创建新实体的视图中保留值

时间:2013-01-22 16:58:25

标签: servicestack

我有一个屏幕(视图),用于列出表中实体的所有实例。如果我双击一行,我将进入一个可以编辑该实体的屏幕。

列表屏幕上有一个按钮,如果单击该按钮,会将我带到用于编辑的相同视图,但这次使用空字段,用于创建实体的新实例。

有时(!),如果我已经编辑并保存了一个实体,返回到列表并单击了“新建”按钮,当我被带到屏幕创建一个新实体时,它具有从实体i填充的值刚刚编辑过。 servicestack中是否存在可能导致数据“泄漏”的任何内容?

非常感谢。

编辑:应该说这是一个带有c#的servicestack.razor(新的api)实现,完全没有使用mvc。

1 个答案:

答案 0 :(得分:0)

抱歉,我认为我指出的项目完美地突出了这个问题。我不确定你还需要什么。冒着重复自己的风险,

  1. 在d / base中有几行数据,加载列表页面中的数据。这显示了一个数据表。

  2. 双击一行以生成具有表单的屏幕。表单中填充了行中的数据。

  3. 返回商品页面。

  4. 现在点击“新”按钮。这会产生相同的视图,用于渲染您在步骤2中单击的行。

  5. 看到视图中的表单是使用上一次渲染中的旧数据填充的,实际上它应该为空,因为您要使用该表单来创建新实体。

  6. 似乎正在发生的事情是第一次呈现视图(表单),(它们是不是预编译的?)它被放入缓存中。问题是表单元素(文本框等)中的任何数据似乎也被放入缓存中。所以,当你然后使用视图尝试创建一个新实体,并希望所有字段都是空的时,它实际上是用旧数据预先填充的。

    不确定我怎么能更清楚这个?或单元测试如何帮助?正如我所说,我放在网站上的项目清楚地表明了这种行为。我愿意花更多的时间在上面,但是我不能等待在这里发布和得到回复之间的长时间延迟。再一次,我明白你和我们其他人一样忙。如果你能回答我关于execute方法如何填充缓存的问题,它可能会有所帮助?还是吗?源代码并不是很清楚,因为内联文档很少,所以我花了很多时间来完成调试器等等。我仍然不清楚某些事情。

    无论如何,如果我抱怨,我道歉,不要吝啬。我确定框架有很大的潜力。