提问人:Mnda90 提问时间:12/16/2022 更新时间:12/16/2022 访问量:194
从 API 的日期时间、创建/发布到 API
Datetime from API , Create/post to API
问:
我有两个不同的项目,一个是 API,一个是 web(front)。 我可以通过我的 API 创建课程,但是当我尝试从前端发布时,我收到了此错误,
FormatException:输入字符串的格式不正确。
它抱怨这个,
<span asp-validation-for="CourseTitle" class="text-danger"></span>
</div>
<div class="col-2">
<label asp-for="CourseStart" class="control-label pt-2" style="font-size:20px;"></label>
</div>
<div class="col-10 pb-3">
<input asp-for="CourseStart" class="form-control" />
<span asp-validation-for="CourseStart" class="text-danger"></span>
</div>
<div class="col-2">
<label asp-for="CourseEnd" class="control-label pt-2" style="font-size:20px;"></label>
</div>
<div class="col-10 pb-3">
不知何故,我的 CourseStart 不起作用,我的班级看起来像这样,
[Key]
public int CourseId { get; set; }
[Required]
public string CourseTitle { get; set; }
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{dd/MM/yyyy}", ApplyFormatInEditMode = true)]
public DateTime CourseStart { get; set; }
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{dd/MM/yyyy}", ApplyFormatInEditMode = true)]
public DateTime CourseEnd { get; set; }
我想我遇到的问题是,当我通过 API 保存课程时,我得到了这样的日期,
"courseStart": "2022-12-15T00:00:00"
所以我认为它以某种方式期待 T00:00:00?你觉得怎么样?我在谷歌上找不到任何东西......
答:
0赞
Mnda90
12/16/2022
#1
我让它起作用了,我所做的是, 把我的班级改成这个,
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
public DateTime CourseStart { get; set; }
之后,在我的 HTML 文件中,我输入了这个,
<div class="col-2">
<label asp-for="CourseStart" class="control-label pt-2" style="font-size:20px;"></label>
</div>
<div class="col-10 pb-3">
<input asp-for="CourseStart" type="date" class="form-control" />
<span asp-validation-for="CourseStart" class="text-danger"></span>
</div>
问题是,通过 HTML 助手,它以这种格式保存它,YYYY-MM-DD,所以我不得不更改它。你可能会自定义它,但对我来说很复杂:)
评论
dd/MM/yyyy
ApplyFormatInEditMode = true
DateOnly
T00:00:00