小编典典

在DateTime LastUpdated列上使用Html.hidden进行版本跟踪时,MVC.NET毫秒丢失

sql

简短的问题:

如何在MVC.NET中做到一点?

长版问题:

我试图使用SQL表中的DateTime列进行版本跟踪(其本身被建议作为在被表的editview传回后重新附加Linq2Sql数据类的解决方案)

但是现在我得到“找不到或更改行”的异常。在ctx.submit上:

 ctx.appointments.Attach(appointment,true);
 ctx.SubmitChanges();

其中CTX是我的LINQ的datacontext,约会我的表,预约约会对象我尝试将..香港专业教育学院设置的预约表作为sugested这里

建议解决方案的读者也注意到了这个问题。他建议将此作为解决方案。

这里的问题是我不使用Webforms,而是使用MVC.NET。所以我猜用

            <%= Html.Hidden("LastUpdate", Model.LastUpdate) %>

更改LastUpdate属性。那么有没有办法确保当它传递回我的更新操作中时得到相同(或至少相等)的DateTime对象?

我在约会表更新时使用了建议的gettime()触发器。这显然存储了一个sql
datetime对象。Linq2SQL可能无法对其进行精确解析。我想这也增加了问题。

我希望对此有解决方案。我知道只使用时间戳格式也可以解决..但这不在此问题的范围内


阅读 196

收藏
2021-03-23

共1个答案

小编典典

我认为问题在于将上次更新时间写到这样的隐藏字段中只会ToString在默认情况下不显示毫秒的日期上执行一个操作。您可以尝试将时间戳渲染为某些绝对值,例如滴答声:

<%= Html.Hidden("LastUpdate", Model.LastUpdate.Ticks) %>

然后,您可以通过将值转换回long并重构DateTime来在另一侧重构日期时间:

var dt = new DateTime(Int64.Parse(ticks));
2021-03-23