问题在短期:
如何做TOT在this MVC.NET?
问题在长版:
即时试图在SQL表使用DateTime列进行版本跟踪(这本身提出作为一种解决方案通过为表EditView中来重新附接LINQ2SQL数据类被passedback之后)
但现在我得到“未找到行或changed'的异常。在ctx.submit:
ctx.appointments.Attach(appointment,true);
ctx.SubmitChanges();
其中CTX是我的LINQ的datacontext,约会我的表,预约约会对象我尝试将..香港专业教育学院设置的预约表作为sugested here
这个问题也被建议的解决方案的读者注意。他建议this作为解决方案。
这里的问题是我不是使用使用MVC.NET web表单,即时通讯。所以我用猜
<%= Html.Hidden("LastUpdate", Model.LastUpdate) %>
使得LASTUPDATE属性更改。那么,有没有一种方法,以确保我得到这个时候被传递回我的更新动作相同(或至少等于)DateTime对象?
即时通讯使用我的约会表的更新建议GETTIME()触发。这显然存储一个SQL DateTime对象。这可能不是由LINQ2SQL被precicely解析。我想这也增加了这个问题。
我希望有一个解决方案。我知道刚才使用时间戳格式会解决它也..但是这是这个问题的范围
我认为问题是,写出的最后更新时间为隐藏字段一样,只会做一个ToString
上默认情况下将不会呈现出毫秒的日期。你可以尝试呈现出时间戳一些绝对值如蜱:
<%= Html.Hidden("LastUpdate", Model.LastUpdate.Ticks) %>
然后,您可以通过将值回长和重建的DateTime重建你对对方的日期时间:
var dt = new DateTime(Int64.Parse(ticks));
你不会相信我,但试试这个:您的控制器上的回报之前,做一次
ModelState.Remove("LastUpdate");
return View(model);
究其原因,有人在无限的信心决定Html.Hidden将保持“贴”的价值观丢弃修改。即使在C#中的同一页面上创建的。
这个你从ModelState中删除它简单的方法,以便能抓住新的价值,而不是公布。
有些人说的默认行为的权利,但请,我与一体的综合性企业搜索(公司/产品),以及一个隐藏字段,为产品的键(长)一个手工制作的网格工作。更改公司在同一页上公布。
<%= Html.Hidden("detalleProductos[" + i + "].PRO_PRODUCTOEMPRESAID", item.PRO_PRODUCTOEMPRESAID)%>
<%= Html.Hidden("detalleProductos[" + i + "].DET_DETALLEENCUESTAID", item.DET_DETALLEENCUESTAID)%>
我花了很多时间试图弄清楚为什么它的错误的公司(我第一次加载)更新。因为记得第一个和丢弃修改我在同一页上的C#制作。很难赶上。
最后,我不得不这样做:
foreach (var s in ModelState.Keys.ToList())
if (s.StartsWith("detalleProductos"))
ModelState.Remove(s);
我很沮丧,我决定后我的解决办法...
祝好运!
如果你不希望使用蜱,TextBoxFor会如果您指定的日期格式和HTML隐藏属性的工作。
@Html.TextBoxFor(model => model.CreatedDate, "{0:dd/MM/yyyy HH:mm:ss.fff}", htmlAttributes: new { @type = "hidden" })
您需要使用DateTime.Ticks属性来获取毫秒。
如果您使用的是视图模型,你可以定义存储日期时间蜱的一个属性。例如:
public long LastUpdateTick { get; set; }
当您将实体映射到你的模型和背部,你可以做的DateTime之间的转换和映射代码蜱。
然后,您的视图可以绑定到LastUpdateTick财产。这将允许你仍然使用lambda表达式的结合,如果你想。
替代做法:不要使用标记辅助方法,在所有的,只是直接写代码到你的页面模板,并将已经格式化值,包括MS:
<input type="hidden" id="Created" name="Created" value="@Model.Created.ToString("dd/MM/yyyy HH:mm:ss.fff")" />
这将使得输出形式:
<input type="hidden" id="Created" name="Created" value="01/02/2019 13:09:46.927" />