Миллисекунды MVC.NET теряются при использовании Html.hidden на столбце DateTime LastUpdated для отслеживания версии

Вопрос короче говоря:

Как итог делает это в MVC.NET?

Вопрос в долгой версии:

Я пытаюсь использовать столбец DateTime в Таблице SQL для отслеживания версии (это сам по себе предложено как решение повторного прикрепления класса данных Linq2Sql будучи passedback editview для таблицы),

Но теперь я получаю 'строку, не найденную или измененное '-исключение. на ctx.submit:

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

где ctx является мой Linq datacontext, назначения моя таблица и назначение, назначение возражает, что я пытаюсь присоединить.. Я имею, устанавливают таблицу назначений, как предложено здесь

Эта проблема была также отмечена читателем предложенного решения. Он предложил это в качестве решения.

Проблема здесь, я не использую веб-формы, я использую MVC.NET. Таким образом, я предполагаю использование

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

вносит изменение свойства LastUpdate. Так есть ли способ удостовериться, что я получаю то же (или, по крайней мере, равняйтесь), объект DateTime, когда это пасуется назад в мое действие обновления?

Я использую предложенный gettime (), включают обновление моей таблицы назначений. это, очевидно, хранит sql объект даты и времени. который не мог бы быть точно проанализирован Linq2SQL. Я предполагаю, что это также добавляет в проблему.

Я надеюсь, что существует решение для этого. Я знаю, что просто использование формата метки времени решило бы его также.. но это выходит за рамки этого вопроса

6
задан Jason Berkan 11 February 2010 в 21:51
поделиться

1 ответ

Я думаю проблема в том, что при записи времени последнего обновления в скрытое поле, подобное этому, будет просто сделана ToString на дату, которая по умолчанию не будет отображать миллисекунды. Вы можете попробовать отобразить метку времени в виде некоторого абсолютного значения, такого как тики:

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

Затем вы можете восстановить дату и время с другой стороны, преобразовав значение обратно в длинное и восстановив DateTime:

var dt = new DateTime(Int64.Parse(ticks));
5
ответ дан 8 December 2019 в 16:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: