gpt4 book ai didi

c# - 显示 DateOfEdited 和 DateOfInserted

转载 作者:行者123 更新时间:2023-11-30 22:54:35 25 4
gpt4 key购买 nike

我正在尝试在我的应用程序中添加两个选项,它们是 disable 并且应该隐藏在 Create.cshtmlEdit.cshtml 中因此,当用户创建新帖子时,它应该显示创建表单的日期,而当用户编辑记录时,它应该显示编辑记录的日期。目前我在 Model

中添加了这个字段
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
public DateTime? DatumUnosta { get; set; }

[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
public DateTime? DatumPromjene { get; set; }

并添加了这部分

public ProduzenaGarancija()
{
DatumUnosta = DateTime.Now;
DatumPromjene = DateTime.Now;
}

在我的 Create.cshtml

<div class="form-group row">
<div class="col-3">
<label>Datum unosa</label>
</div>
<div class="col-5">
<input asp-for="Garancija.DatumUnosta" id="datum_unosa"
type="text" disabled class="form-control" />
</div>
</div>

和Edit.cshtml

 <div class="form-group row">
<div class="col-3">
<label>Datum promjene</label>
</div>
<div class="col-5">
<input asp-for="Garancija.DatumPromjene" type="text"
disabled id="datum_promjene" class="form-control" />
</div>
</div>

Application.js 这两个标签的脚本:

$("#datum_unosa").datepicker({
//dateFormat: 'dd/mm/yy',
changeMonth: true,
changeYear: true
}).datepicker("setDate", new Date());

$("#datum_promjene").datepicker({
//dateFormat: 'dd/mm/yy',
changeMonth: true,
changeYear: true
}).datepicker("setDate", new Date());

每当我插入或更新记录时,两个日期都具有相同的datetime 字段即使是几分钟,当我尝试更新记录时 Date of CreateDate of Update 具有相同的值。有谁知道这里出了什么问题,什么是最好的如何做到这一点?

Image

最佳答案

您有模型,它是从数据库加载的(我假设,您还没有显示代码)。加载后,您只需显示值。这部分可能有效(因为我们显示了多个日期/时间)。

问题所在的部分是创建值的时间。如果您查看这段代码:

public ProduzenaGarancija()
{
DatumUnosta = DateTime.Now;
DatumPromjene = DateTime.Now;
}

在此构造函数中,您将两个时间都设置为 DateTime.Now,然后保持时间不变。但是,当您更新对象 ProduzenaGarancija 时,您是否也更新属性 DatumPromjene

一种方法是在每次属性更新时调用方法,例如onUpdate(),它将为您更新时间:

private string mName;
//Some of my property
public string Name
{
get { return this.mName }
set
{
this.mName = value;
this.onUpdate();
}
}

[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
public DateTime? DatumPromjene { get; set; }

public void onUpdate()
{
this.DatumPromjene = DateTime.Now;
}

或者,如果您不想修改您的模型(尤其是属性),您可以在编辑结束时调用它。但是你必须记住,在你所做的每一次改变中,你也必须改变时间:

public void EditButton_Clicked(/* Event handlers*/)
{
var myObject = this.myObject; // get the object from <somewhere>

myObject.Name = "abc"; /*set properties
.
.
.
*/

//at the end of edit, you should call either of these rows to change the time
myObject.onUpdate();
myObject.DatumPromjene = DateTime.Now;
}

关于c# - 显示 DateOfEdited 和 DateOfInserted,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56112165/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com