C# 日期时间模型无法在google chrome上显示
我的asp.net核心mvc应用程序中有datetime数据类型,它显示mm/dd/yyyy--:---doest从datepicker获取输入。只读模式甚至显示此mm/dd/yyyyy--:---而不是传递到模型的日期时间。有什么方法可以删除此数据?正如上面Kanavos所评论的,格式仅在转换为文本或解析文本时适用 如果希望显示DateTime对象的各个部分并隐藏其他部分,可以执行以下操作:C# 日期时间模型无法在google chrome上显示,c#,asp.net-mvc,google-chrome,asp.net-core,razor,C#,Asp.net Mvc,Google Chrome,Asp.net Core,Razor,我的asp.net核心mvc应用程序中有datetime数据类型,它显示mm/dd/yyyy--:---doest从datepicker获取输入。只读模式甚至显示此mm/dd/yyyyy--:---而不是传递到模型的日期时间。有什么方法可以删除此数据?正如上面Kanavos所评论的,格式仅在转换为文本或解析文本时适用 如果希望显示DateTime对象的各个部分并隐藏其他部分,可以执行以下操作: var newFormat = dateTimeObj.ToString("<desired
var newFormat = dateTimeObj.ToString("<desired format>")
var newFormat=dateTimeObj.ToString(“”)
并将“
日期选择器输入日期,并显示唯一的日期mm/dd/yyyyy
部分,而不是mm/dd/yyyyy-->
可以通过对模型使用数据注释来实现这一点
[DataType(DataType.Date)]
public DateTime Date { get; set; }
在razorview
中,您可以Html助手
输入和显示日期
@Html.EditorFor(model => model.Date, new { htmlAttributes = new { @class = "form-control" } })
对于只读
显示
@Html.DisplayFor(modelItem => item.Date)
请查看以了解更多信息。日期选择器的默认值格式为yyyy-mm-dd
,如果设置DateTime类型属性的displayFormat,则应将type=“text”
设置为输入,否则可能会出现类似的错误,如指定值“02/12/1995”不符合所需格式,“yyyy-MM-dd”。
以下是一个示例:
型号:
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
public string Email { get; set; }
public int Age { get; set; }
[DataType(DataType.Date)]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
public DateTime Birth { get; set; }
}
视图:
@节脚本{
@{wait Html.RenderPartialAsync(“_validationScript”);}
$(文档).ready(函数(){
$(“#日期选择器”)。日期选择器({
格式:“dd/mm/yyyy”
})
});
}
结果:
发布您的代码-HTML/Javascript和服务器端。您使用了什么日期选择器?DateTime没有格式,它是一个二进制值。格式仅在转换为文本或解析文本时适用。即使您使用以字符串形式返回日期的Javascript日期选择器,ASP.NET Core也会以ISO8601格式解析字符串。@PanagiotisKanavos I我猜他们使用的是My problem only google chrome带来的这个mm/dd/yyyyy--:---甚至我还设置了可为空的datetime字段来删除这个默认值。非常感谢所有这些Type=“text”解决方案对我有效。很高兴我的解决方案能帮到你,你能将我的回复标记为答案吗?
<div class="row">
<div class="col-md-4">
<form asp-action="Edit">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<input type="hidden" asp-for="Id" />
<div class="form-group">
<label asp-for="Name" class="control-label"></label>
<input asp-for="Name" class="form-control" />
<span asp-validation-for="Name" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Email" class="control-label"></label>
<input asp-for="Email" class="form-control" />
<span asp-validation-for="Email" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Age" class="control-label"></label>
<input asp-for="Age" class="form-control" />
<span asp-validation-for="Age" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Birth" class="control-label"></label>
<input type="text" asp-for="Birth" class="form-control" id="datepicker" />
<span asp-validation-for="Birth" class="text-danger"></span>
</div>
<div class="form-group">
<input type="submit" value="Save" class="btn btn-primary" />
</div>
</form>
</div>
</div>
@section Scripts {
@{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/datepicker/0.6.5/datepicker.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/datepicker/0.6.5/datepicker.js">
</script>
<script type="text/javascript">
$(document).ready(function () {
$("#datepicker").datepicker({
format: 'dd/mm/yyyy'
})
});
</script>
}