我正在尝试逐步更新我的ASP.NETMVC5网站,以便最终迁移到ASP.NETMVCCore。我曾经把一些数据放在隐藏字段中,并使用@Html.Serialize(“name”,value)将其序列化到隐藏字段中,然后在html POST时使用[Deserialize]属性将其反序列化到一个动作参数中。这曾经是Microsoft.AspNet.Mvc.Futures www.example.com nuget包的一部分5.0.0.0,它最近一次更新是在很多年前,我不知道它迁移到了什么地方,或者甚至没有继任者?
1条答案
按热度按时间wz3gfoph1#
我基于旧的SerializationExtensions和DeserializeAttribute使用JSON编写了自己的替代品:
SerializationExtensions.cs:
字符串
JsonModelBinder.cs:
型
JsonDeserializeAttribute.cs:
型
你可以像使用@Html.Serialize()和[Deserialize]组合一样使用这些:
型
在您的控制器操作中:
型
也许我会把它添加到github,这样其他人也可以使用它。
对于那些好奇我为什么使用它的人:这对于对象编辑页面来说很方便,在那里你想存储一个对象的旧值,并在发布时将它发送回控制器操作,所以在SQL UPDATE语句中,你把旧的字段值放在SQL WHERE子句中,以防止更新冲突(所以如果WHERE子句与当前数据库记录不匹配,UPDATE就会失败,这样另一个用户的更新就不会被默默地覆盖)。我想这是一个老学校的方式更新数据库记录,但它的固体,我喜欢它。