Question en bref:
Comment faire Ceci dans mvc.net? P>
IM essaye d'utiliser une colonne DateTime dans une table SQL pour le suivi de la version ( Ceci en soi est proposé comme une solution pour réattacher une classe de données LINQ2SQL après avoir été réactivée par EditView pour la table) P>
mais maintenant, je n'ai pas trouvé ni changé. Sur le CTX.SUBMIT: P>
<%= Html.Hidden("LastUpdate", Model.LastUpdate) %>
5 Réponses :
Je pense que le problème est que l'écriture de la dernière heure de mise à jour dans un champ caché comme celui-ci sera simplement un Vous pouvez ensuite reconstruire votre heure de temps de l'autre côté en convertissant la valeur de la valeur et en reconstruisant la date d'heure: < / p> Tostring code> à la date qui par défaut ne rendra par défaut pas les millisecondes. Vous pouvez essayer de raincre l'horodatage comme une valeur absolue, telle que des ticks:
Vous ne me croirez pas, mais essayez ceci: avant le retour sur votre contrôleur, faites une raison , une personne sur la confiance infinie déciderait HTML.Choride garderait des valeurs "postées" Jeter les modifications. Même lorsqu'il est créé sur C # sur la même page. p> Ce moyen simple que vous le supprimez de la modélisation de sorte qu'il attrape la nouvelle valeur au lieu de poster. P> Certaines personnes indiquent le comportement par défaut, mais s'il vous plaît, je travaillais avec un Grille faite à la main avec une recherche intégrée de la société (entreprise / produits) et champ caché pour la clé des produits (longue). Changer la société postée sur la même page. P> foreach (var s in ModelState.Keys.ToList())
if (s.StartsWith("detalleProductos"))
ModelState.Remove(s);
Vous devez utiliser la propriété DateTime.Ticks pour obtenir les millisecondes.
Si vous utilisez une vueModel, vous pouvez définir une propriété sur celle qui stocke les tiques DateTime. Par exemple: p> Lorsque vous mappez votre entité sur votre modèle et que vous pouvez effectuer la conversion entre DateTime et les ticks dans le code de cartographie. P> Votre La vue peut alors se lier à la propriété LastUpdatetictick. Cela vous permettra de toujours utiliser des expressions Lambda pour la liaison si vous le souhaitez. P> p>
Si vous ne voulez pas utiliser de ticks, Textboxfor fonctionnera si vous spécifiez le format de date et l'attribut HTML Hidden.
Approche alternative: N'utilisez pas du tout une méthode d'aide à la balise, écrivez simplement la balise directement dans votre modèle de page et insérez la valeur formatée, y compris MS:
<input type="hidden" id="Created" name="Created" value="01/02/2019 13:09:46.927" />
La spécification du format de date comme celle-ci peut être dangereuse lorsque le code qui analyse la chaîne de retour à une date d'heure s'attend au lieu de MM / DD au lieu de DD / MM. Le résultat pourrait être une valeur de date incorrecte.
@Nineberry C'est un bon point, cette méthode fonctionne pour moi car je suis en contrôle du code qui reçoit la chaîne de retour sur le serveur et que j'ai tendance à vérifier que les serveurs que je contrôlent utilisent des formats de date / heure britanniques partout. Mais vous avez raison de signaler le risque, d'autres peuvent préférer utiliser un format de date plus portable.