[英]Data is being saved in SQL DB as 1/1/0001 12:00:00 AM
我是 ASP.NET Core 的新手,并且像使用日期/时间的任何其他语言一样很痛苦。 我有一个 HTML 表单,其中我的字段在加载时看起来像这样:
最后两个字段(即加入日期和上次更改日期)背后的代码是:
<input class="form-control-sm w-100" id="date_joined" value="@(Employee.DateJoined == DateTime.MinValue ? DateTime.UtcNow : Employee.DateJoined)" autocomplete="off" />
<input class="form-control-sm w-100" id="last_changed" value="@DateTime.Now" readonly="readonly" />
如您所见,Last Changed 字段是只读的,但用户可以在 Date Joined 字段中更改日期。 现在,当单击保存按钮时,已成功保存 Date Joined 的值,但 Last Changed 的值保存为1/1/0001 12:00:00 AM
。 这是单击保存按钮时发生的情况的 controller 代码:
public IActionResult SaveEmployee(Employee employee) {
try
{
_db.Employees.Add(employee);
_db.SaveChanges();
return Json(new { success = true, message = "Saved Successfully" });
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
return Json(new { success = false, message = "Error while saving" });
}
}
现在员工的数据来自类型脚本:
private save() {
try {
const employee = this.createEmployee();
Util.request(this.urlSaveEmployee, 'post', 'json', (response) => {
if (response != null) {
$.notify(response.message);
location.reload();
} else {
$.notify(response.message);
console.error('Failed to get data #T7G985. Please try again.');
}
}, () => { }, employee);
} catch (e) {
console.error(e);
}
}
private createEmployee() {
try {
const employee = {
Firstname: $('#first_name').val(),
Lastname: $('#last_name').val(),
Position: $('#position').val(),
Department: $('#department').val(),
Salary: $('#salary').val(),
DateJoined: $('#date_joined').val(),
LastChanged: $('#last_changed').val()
};
return employee;
} catch (e) {
console.error(e);
}
}
}
通过断点,我可以看到 typescript 正在返回正确的值。
此外,当employee
从类型脚本传递给控制器时,这是显示日期错误的地方。
您的 model Employee
的属性为LastUpdated
,并且您正在从javascript
LastChanged
post
object 属性LastChanged
更新为LastUpdated
然后它将起作用。
您的createEmployee()
将更新如下。
private createEmployee() {
try {
const employee = {
Firstname: $('#first_name').val(),
Lastname: $('#last_name').val(),
Position: $('#position').val(),
Department: $('#department').val(),
Salary: $('#salary').val(),
DateJoined: $('#date_joined').val(),
LastUpdated: $('#last_changed').val() // Updated property name
};
return employee;
} catch (e) {
console.error(e);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.